【发布时间】:2017-12-16 21:31:11
【问题描述】:
当系统停机/关机时,我需要执行一些命令。
我需要在我的脚本 /etc/init.d/myScript 中知道这一点,该脚本在系统出现故障时被调用。
我曾经通过检查 $runlevel 变量来做到这一点,如果它设置为 0,那么系统就会停止运行,例如几年前它在 Raspbian 中工作。
但是,在我的 Linux cubieboard2 4.9.12-sunxi Armbian 中,这个变量没有设置,当我在 myScript 的“STOP”案例中执行“runlevel”命令时,它说它处于 N 5 运行级别,这是不正确的,因为我已执行关机
欢迎所有提示。
【问题讨论】:
-
我会想到两种方法:(a)使用
last命令,它可以根据选项为您提供最后一次关机或最后一次重新启动时间,或者(b)解析@987654323 @ 文件。这些都行吗? -
不是通过切换到运行级别 0 来停止系统,从而执行
/etc/rc0.d/目录中的所有脚本吗?因此,即使您无法通过$runlevel(根据我的手册页,顺便说一句,应该是$RUNLEVEL)或runlevel命令识别当前运行级别,您也可以在/etc/rc0.d/中放置一个符号链接到一个特殊脚本仅在系统停止时调用。 -
如果您正在运行 systemd,您可以尝试通过“systemctl get-default”获取运行级别
-
chkconfig显示了您的服务的哪些方面。您可能想阅读 LSB 第 20 章 refspecs.linuxfoundation.org/LSB_4.0.0/LSB-Core-generic/…