systemd: *.service ファイルの実行時間制御

systemd: *.service ファイルの実行時間制御

終了または再起動時にスクリプトを実行するように管理しましたが、遅すぎるスクリプトが原因でエラーが発生しました。 *.service ファイルは次のとおりです。

[Unit]
Description=My special shutdown script

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

[Install]
WantedBy=multi-user.target

答えはbefore=orwants=フィールドだと思います。

私が問題があると言うのは、umountb2.shが2つの基本的なタスクを実行するためです。つまり、ファイルシステムを(成功的に)アンマウントしてからを呼び出しますcryptsetup luksClose。最後の呼び出しはエラーを返します。出力をキャプチャして/ dev / kmsgにリダイレクトしても、メッセージは表示されず、コマンドechoで実行されたメッセージのみが表示されます。だから間違った時に呼び出されていると思います。

以下は、問題が発生した場所で実行したスクリプトの例です。

cryptsetup luksClose b258
if [ "$?" -ne 0 ]; then
   echo "you gotta problem pal!"

見て、cryptsetup私が見ることができる結果が一つもありません。 (私が間違ったところを見ているのでしょうか?)だから私が得る唯一の結果は私がしたことだけです。

編集:私は実際にテストしましたが、umount今回はスクリプトが失敗しました。しかし、私の考えでは、最終的に同じ問題、つまりタイミングが問題のようです。

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

関連情報