首页 文章

在运行init.d脚本之前,Wifi已断开连接

提问于
浏览
0

我已经设置了一个简单的init.d脚本“S3logrotate”以在关机时运行 . 从命令行手动运行时,“S3logrotate”脚本工作正常但脚本在关闭时无法正常运行 .

该脚本将日志从我的PC上传到Amazon S3存储桶,并且需要wifi才能正常运行 .

调试证明脚本实际运行但上传过程失败 .

我发现问题似乎是在wifi终止后脚本似乎运行 .

这些是我用来在脚本中测试我的互联网连接的块 .

if ping -q -c 1 -W 1 8.8.8.8 >/dev/null; then
  echo "IPv4 is up" >> *x.txt*
else
  echo "IPv4 is down" >> *x.txt*
fi

if ping -q -c 1 -W 1 google.com >/dev/null; then
  echo "The network is up" >> *x.txt*
else
  echo "The network is down" >> *x.txt*
fi

该块的输出是:

IPv4 is down
The network is down

有没有办法设置init.d脚本的优先级?在中,我可以在网络连接终止之前运行我的脚本吗?如果没有,是否有任何替代init.d?

我使用的是Ubuntu 16.04,并且如果重要的话,可以使用Windows 10双启动 .

谢谢,

sganesan7

1 回答

  • 0

    你应该把你的脚本放在:

    /etc/NetworkManager/dispatcher.d/pre-down.d
    

    将组和所有者更改为root

    chown root:root S3logrotate
    

    它应该工作 . 如果您需要为单独的接口位置脚本执行此操作

    在里面创建一个脚本

    /etc/NetworkManager/dispatcher.d/
    

    并命名(例如):

    wlan0-down
    

    也应该工作 .

相关问题