【问题标题】:Wifi disconnected before init.d script is run在运行 init.d 脚本之前 Wifi 断开连接
【发布时间】:2016-11-23 22:47:44
【问题描述】:

我设置了一个简单的 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

【问题讨论】:

  • 这个问题与 StackOverflow 定义的编程无关。它可能在 S.E. 上更合适。相关网站 askubuntu.comsuperuser.com 。使用 Q 底部的flag 链接并要求版主移动它。请不要在 2 个不同的网站上发布相同的 Q。请先阅读stackoverflow.com/help/how-to-askstackoverflow.com/help/dont-askstackoverflow.com/help/mcve,然后再在这里发布更多问题。祝你好运。
  • /etc/rc6.d 中的链接应该有一个像K01 这样的数字前缀。脚本按数字顺序运行,因此您应该给它一个比终止网络连接的脚本小的数字。

标签: linux bash amazon-s3 init.d


【解决方案1】:

您应该将您的脚本放入:

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

将组和所有者更改为 root

chown root:root S3logrotate

它应该可以工作。如果您需要在

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

在里面创建一个脚本

/etc/NetworkManager/dispatcher.d/

并命名(例如):

 wlan0-down  

应该也可以。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 2015-08-05
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多