web-dev-qa-db-ja.com

再起動またはシャットダウンする前にスクリプトを実行できません

システムをシャットダウンまたは再起動する前にスクリプトを実行する必要があります。

shutdown-Pulseというスクリプトを作成しました。これを実行し、/etc/init.dの下に配置する必要があります。

スクリプトの内容は次のとおりです。

#!/bin/sh

echo "[`date`] Executing" > /var/log/shutdown-Pulse.log
# my script to shutdown Pulse
echo "[`date`] Done" > /var/log/shutdown-Pulse.log

shutdown-Pulseのファイル許可は次のとおりです。

root@TanLap:/etc/init.d# ls -l shutdown-Pulse
-rwxr-xr-x 1 root root 77 May 26 12:39 shutdown-Pulse

/etc/rc0.d/etc/rc6.dの下に、それぞれ同じ名前K02shutdown-Pulseを持つ2つのシンボリックリンクを作成しました。

root@TanLap:/etc/rc0.d# ls -l K02shutdown-Pulse 
lrwxrwxrwx 1 root root 24 May 26 12:45 K02shutdown-Pulse -> ../init.d/shutdown-Pulse

そして

root@TanLap:/etc/rc6.d# ls -l K02shutdown-Pulse 
lrwxrwxrwx 1 root root 24 May 26 12:45 K02shutdown-Pulse -> ../init.d/shutdown-Pulse

再起動後、shutdown-Pulse.logの下に作成された/var/logファイルにいくつかの内容が含まれることを期待していました。しかし:

root@TanLap:/var/log# ls -l shutdown-Pulse.log
ls: cannot access 'shutdown-Pulse.log': No such file or directory

問題を把握するために、どのようなポインタでも非常に役立ちます。

注:PulseはPulse Secure VPN Clientです

6
Tapas Bose

新しいubuntuバージョン(ubuntu 16.04以降)を使用している場合は、systemdの代わりにsysvinitを使用する必要があります。

例は次のようになります(/etc/systemd/system/Pulse-vpn.serviceに配置します:

[Unit]
Description=Pulse VPN Client

[Service]
Type=simple
ExecStop=/path/to/your/script

[Install]
WantedBy=multi-user.target

これを有効にするには、実行します

$ Sudo systemctl daemon-reload
$ Sudo systemctl enable Pulse-vpn.service
6
Lienhart Woitok