Shutdown

如何在 Debian 9 或 Raspbian 8 (Jessie) 上關閉時執行腳本

  • November 20, 2018

我想在重新啟動並關閉時執行這個 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沒有奏效。

我的印像是,其他人似乎在執行此程序時也遇到了問題。似乎從 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.service並安裝在sudo systemctl enable te1.

引用自:https://unix.stackexchange.com/questions/347275