我已经设置了一个简单的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
答案 0 :(得分:0)
您应该将脚本放在:
/etc/NetworkManager/dispatcher.d/pre-down.d
将群组和所有者更改为root
chown root:root S3logrotate
它应该有效。如果您需要在
中为单独的界面位置脚本执行此操作在
中创建一个脚本/etc/NetworkManager/dispatcher.d/
并命名(例如):
wlan0-down
也应该有用。