web-dev-qa-db-ja.com

Debian 9またはRaspbian 8(Jessie)でシャットダウン時にスクリプトを実行する方法

再起動してシャットダウンするときにこのシェルスクリプトを実行したいと思います。

#!/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が機能しませんでした。

3
Frank Breitling

他の人もこれを実行するのに問題があるようだという印象を受けました。 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でインストールする必要があります。

7
Frank Breitling

あなたは少しの検索でそれを見つけることができたようですが:
/etc/rc6.dにスクリプトを置き、必要な権限を付与します。

Sudo chmod +x K99_script

といくつかのポイント
。sh拡張子なし
K_99が必要
ここのスクリプトはアルファベット順に実行されます
読む ここ

0
F.sb