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

时间:2016-11-23 22:47:44

标签: linux bash amazon-s3 init.d

我已经设置了一个简单的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 :(得分:0)

您应该将脚本放在:

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

将群组和所有者更改为root

chown root:root S3logrotate

它应该有效。如果您需要在

中为单独的界面位置脚本执行此操作

中创建一个脚本
/etc/NetworkManager/dispatcher.d/

并命名(例如):

 wlan0-down  

也应该有用。