在所有网络接口停止之前,是否可以在Linux中检测系统关闭/重启?我可以处理SIGTERM信号并检查运行级别,但此时网络可能已经关闭。我需要在Python脚本中使用功能。
答案 0 :(得分:1)
在关闭(运行级别0)或重新启动(运行级别6)时,/etc/rc.d/rc0.d/
或/etc/rc.d/rc6.d/
中的脚本分别按顺序运行。如果您查看这些目录,您会看到类似的内容:
lrwxrwxrwx. 1 root root 17 Feb 10 2012 K00ipmievd -> ../init.d/ipmievd
lrwxrwxrwx. 1 root root 16 Feb 25 2013 K01smartd -> ../init.d/smartd
...
lrwxrwxrwx. 1 root root 17 Dec 16 13:27 K90network -> ../init.d/network
...
lrwxrwxrwx. 1 root root 14 Jul 27 2015 K95rdma -> ../init.d/rdma
lrwxrwxrwx. 1 root root 18 Jul 27 2015 K99cpuspeed -> ../init.d/cpuspeed
lrwxrwxrwx. 1 root root 22 Dec 16 13:28 K99lvm2-monitor -> ../init.d/lvm2-monitor
lrwxrwxrwx. 1 root root 14 Dec 8 2011 K99rngd -> ../init.d/rngd
lrwxrwxrwx. 1 root root 17 Oct 24 2014 K99sysstat -> ../init.d/sysstat
如果您希望关机脚本在网络关闭之前运行,请将其置于此之前。
您可能不想直接操纵这些目录,因此请参阅man chkconfig
。
我应该补充一点,如果您的Linux足够新,systemd
所有这一切都在窗外。