我设置了一个简单的 init.d 脚本“S3logrotate”以在关机时运行。 “S3logrotate”脚本在从命令行手动运行时工作正常,但脚本在关闭时无法正常运行。
脚本将日志从我的 PC 上传到 Amazon S3 存储桶并需要 wifi 才能正常运行。
调试证明脚本确实运行了,但是上传过程失败。
我发现问题似乎是脚本似乎在 wifi 终止后运行。
这些是我用来在脚本中测试互联网连接的 block 。
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
这个 block 的输出是:
IPv4 is down
The network is down
有什么方法可以设置 init.d 脚本的优先级吗?比如,我可以让我的脚本在网络连接终止之前运行吗?如果没有,是否有替代 init.d 的方法?
我使用 Ubuntu 16.04,如果重要的话,我会使用 Windows 10 双启动。
谢谢,
sganesan7
你应该把你的票据放在:
/etc/NetworkManager/dispatcher.d/pre-down.d
将组和所有者更改为 root
chown root:root S3logrotate
它应该可以工作。如果您需要为单独的界面放置脚本执行此操作
在里面创建一个脚本
/etc/NetworkManager/dispatcher.d/
并命名(例如):
wlan0-down
应该也可以。
我是一名优秀的程序员,十分优秀!