如何在 Debian 9 或 Raspbian 8 上关机时运行脚本 (Jessie)

如何在 Debian 9 或 Raspbian 8 上关机时运行脚本 (Jessie)

我想在重新启动和关闭时执行此 shell 脚本:

#!/bin/sh
touch /test

其权限是

-rwxr-xr-x 1 root root 22 Feb 24 09:34 /etc/init.d/te1

它有这个链接

/etc/rc0.d/K01te1 -> ../init.d/te1
/etc/rc6.d/K01te1 -> ../init.d/te1

如果我有这个链接,它就会在启动时工作

/etc/rc5.d/S01te1 -> ../init.d/te1

但我需要它在关闭时运行。

如何在 Debian 8 和 9 测试中执行此操作?

建议 touch /var/lock/subsys/te1没用。

答案1

我的印象是其他人在运行这个程序时似乎也遇到了问题。似乎从 Debian 8.0 (Jessie) systemd 开始就破坏了与 System V init 的兼容性。

所以这里建议创建一个 systemd 服务。解决办法是在这里使用看起来像这样:

[Unit]
Description=The te1 script

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/usr/local/bin/te1

[Install]
WantedBy=multi-user.target

systemd 服务需要保存/lib/systemd/system/te1.servicesudo systemctl enable te1.

答案2

似乎你可以通过一些搜索找到它,但是:
将你的脚本放在 /etc/rc6.d 授予必要的权限:

sudo chmod +x K99_script

和一些要点: 不需要
.sh 扩展名K_99 此处的脚本按字母顺序执行 读取


这里

答案3

尝试在运行级别 6 中将脚本作为启动脚本执行

ln -s /etc/init.d/te1 etc/rc0.d/S01te1

相关内容