再起動と終了時に次のシェルスクリプトを実行したいと思います。
#!/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
私の考えでは、他の人もこのプログラムを実行するのに問題があるようです。 systemdはDebian 8.0(Jessie)以降、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
。
答え2
検索で見つけることができるようですが、次のように
スクリプトを/etc/rc6.dに配置します。必要な権限を付与します。
sudo chmod +x K99_script
そしていくつかの鍵:
.sh 拡張子 K_99 は不要です。ここのスクリプトはアルファベット順に読み込みを行います。
ここ
答え3
ランレベル6で起動スクリプトとしてスクリプトを実行してみてください。
ln -s /etc/init.d/te1 etc/rc0.d/S01te1