systemd スクリプトのタイミングを正しく取得する

systemd スクリプトのタイミングを正しく取得する

シャットダウン時にシステムを実行させようとしているスクリプトがあり、シャットダウン時 (または再起動時) にのみ実行させようとしています。このスクリプトはサーバーを起動または停止しません。単に一部のファイル システムをアンマウントするだけです。残念ながら、私が見つけたドキュメントの多くは、サーバーを管理するスクリプトを作成するつもりであると考えているようですが、私がやっていることはまったく違います。

読むhttp://tuxgraphics.org/npa/systemd-scripts/そしてman systemd.serviceman systemd.unit何に従うべきかさえよく分かりませんが)私は次のことを実行しています。

[Unit]
Description=My umount script
After=network.target syslog.target

[Service]
Type=oneshot
ExecStop=/home/PL/bin/umountb2.sh
StandardOutput=journal

しかし、それが正しいかどうかはわかりませんし、適切なタイミングで実行されるかどうかも自信がありません。通常のユーザー全員がログアウトした後、ファイル システムがアンマウントされる前ではなく、しばらくしてから実行する必要があります。

私はUbuntu 22.04.2を実行しています

編集: 設定ファイルは次のようになります:

 Description=My special shutdown script

 [Service]
 Type=oneshot
 RemainAfterExit=true
 ExecStop=/home/PL/bin/umountb2.sh

 [Install]
 WantedBy=multi-user.target

状況は改善されましたが、スクリプトが を呼び出すためエラーが返されるという問題があります。再起動すると、スクリプトの後に 3 つのメッセージしか表示されず、最初のメッセージは次のようになるcryptsetupため、実行が遅すぎるのだと思います。journalctl -b -1 --dmesg

カーネル: nfsd: 最後のサーバーが終了しました。エクスポート キャッシュをフラッシュしています

関連情報