CentOS 7システムがシャットダウンする前に実行したいスクリプトがあります。前の質問では、systemdを使用してこれを実行するプロセスについて詳しく説明しました。。デフォルトでは、実行したいスクリプトを入れると/usr/lib/systemd/system-shutdown/
自動的に実行されます。
この方法は機能しますが、スクリプトに時間(数分)かかることがあります。スクリプトが終了し、システムが停止し続けてから90秒のタイムアウトがあるようです。このタイムアウトをどのように変更できますか?
に基づいてここで議論してくださいDefaultTimeoutStartSec=infinity
、設定、試してみDefaultTimeoutStopSec=infinity
ましたが、/etc/systemd/system.conf
効果がありませんでした。
編集する:
詳しく調査した結果、理由が見つかりました。終了スクリプトがこのように実行されると、バイナリによって実行されますsystemd-shutdown
。ソースコードは次のとおりです。ここで見つけることができます。特に、このコードはスクリプトの実行を担当します。
execute_directories(dirs, DEFAULT_TIMEOUT_USEC, NULL, NULL, arguments);
DEFAULT_TIMEOUT_USEC
定義はbasic/def.h
次のとおりです。
#define DEFAULT_TIMEOUT_USEC (90*USEC_PER_SEC)
したがって、ハードコーディングされた90秒の制限があり、このメカニズムが私の要求に役に立たなくなるようです。終了時にスクリプトを実行するのに適した他の方法はありますか?WantedBy
停止先として独自のシステムサービスを作成できますか?ファイルシステムが読み取り専用に再マウントされた後(プロセスの非常に遅いステップ)、このスクリプトを実行したいと思います。