
Ubuntu日本語フォーラム

ログインしていません。
ubuntu 20.04 LTSでシャットダウンまたはリブート時のタイミングで
自作スクリプトを自動実行させる方法はあるでしょうか。できるだけ簡単な方法で。
自分がやってみたことは
/etc/init.d/ に実行したいスクリプト(halt.local)を設置し、-r-xr-xr-x root:root halt.local で実行権限を設定。
/etc/rc0.d/ および /etc/rc6.d/ に K99halt.local -> ../init.d/halt.local でシンボリックリンクを設定してみましたが、
シャットダウン時とリブート時に機能していませんでした。普通にコマンドラインからは実行はできているのですが。
古いやり方ではダメなんでしょうね...。
オフライン
southern.class による投稿:
ubuntu 20.04 LTSでシャットダウンまたはリブート時のタイミングで
自作スクリプトを自動実行させる方法はあるでしょうか。できるだけ簡単な方法で。
自分がやってみたことは
/etc/init.d/ に実行したいスクリプト(halt.local)を設置し、-r-xr-xr-x root:root halt.local で実行権限を設定。
/etc/rc0.d/ および /etc/rc6.d/ に K99halt.local -> ../init.d/halt.local でシンボリックリンクを設定してみましたが、
シャットダウン時とリブート時に機能していませんでした。普通にコマンドラインからは実行はできているのですが。
古いやり方ではダメなんでしょうね...。
動作条件が満たされていないような?
参照: https://unix.stackexchange.com/questions/347275/how-to-run-a-script-at-shutdown-on-debian-9-or-raspbian-8-jessie
halt.local -> K_99 is needed
オフライン
ubuntu 20.04 なら systemd にサービスを登録すれば、起動時やシャットダウン時に動作するスクリプトを作れます。
オフライン
ご教示ありがとうございました。解決できました。
systemd にサービスを作成するのですね。
提示していただいたURLを参考に
/etc/systemd/system/ に次の halt-local.service ファイルを作成。
ーーーーーーーーーーーーーーー
[Unit]
Description=halt-local script
[Service]
Type=oneshot
RemainAfterExit=yes (参照したURLでは =true でしたが)
ExecStart=/bin/true
ExecStop=/sbin/halt-local
[Install]
WantedBy=multi-user.target
ーーーーーーーーーーーーーーー
を記述。
実行したいスクリプトファイルは /sbin/halt-local (-rwxr-xr-x)に設置。
そのあと
sudo systemctl enable halt-local
を実行することでシャットダウンおよびリブート時に/sbin/halt-localが実行できるようになりました。
なお、/usr/lib/systemd/system/ に halt-local.service を置いても機能しましたが
同じファイルが存在する場合は /etc/systemd/system が優先されるとのことでした。
オフライン