在Ubuntu(最新的发行版很好)中,我想重新启动路由器,并在bash脚本中我想要一个命令来等待网络链接再次启动,当它检测到这一点时,它必须启动bash 命令。
我可以通过某种轮询循环来实现这一点,但理想的解决方案是使用一个 bash 命令,该命令在执行时等待链接启动并自动执行我提供给它的 bash 命令。
我读过一些有关 dbus 的内容(dbus 似乎是可行的方法),但似乎也需要太多时间才能完全理解如何正确使用它。有人建议我检查像 ethtool 这样的工具是否能够执行这种“等待并执行”,但在手册页中我没有找到任何有关它的信息。
注意:我忘了说我想要命令来检查链路的物理层是否已启动。因此,在上层工作的解决方案不被接受。此外,涉及将脚本放入目录(例如/etc/network/if-up.d)中的解决方案也不被接受。
有任何想法吗?
谢谢
我建议的事件监听器:
inotifywait -e modify /sys/class/net/eth0/carrier; echo 'Change detected'
当您插入或拔出网络电缆时,它会触发回显“检测到更改”,当然它可能会触发任何事情。
这将一次性运行,但我想你知道如何用它创建一个守护进程,如果没有,这将是一个很好的学习练习:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)