複数のソースを見ると、override conf ファイルの ExecStartPre がデフォルトのサービスファイルの後に順次実行されるように見えます。
しかし、これはsystemd自体で保証されていますか?また、ExecStartPreが一種のnohupならどうなりますか?それとも長期間実行されるプロセスですか?
答え1
バラよりman systemd.unit
:
ユニットファイルに加えて、
foo.service
「挿入」ディレクトリがあるかもしれません。foo.service.d/
サフィックス " "を持つこのディレクトリ内のすべてのファイルは.conf
英数字順にマージされ、デフォルトのデバイスファイル自体の後に解析されます。
ExecStartPre=
、ExecStartPost=
のコマンドの前または後に実行される追加のコマンド
ExecStart=
。構文は、複数のExecStart=
コマンドラインが許可されている点を除いてforと同じです。このコマンドは順番に 1 つずつ実行されます。。[...]
ExecStartPre=
長期実行プロセスの開始には使用できません。ExecStartPre=
via viaというプロセスによって生成されたすべてのプロセスは、次のサービスプロセスを実行する前に終了します。参考にしてください
ExecStartPre=
、ExecStart=
またはExecStartPost=
失敗(およびプレフィックス "-
"がない場合は、上記を参照)またはサービスが完全に開始される前のタイムアウトで指定されたコマンドを実行し続け、ExecStopPost=
コマンドをスキップします。ExecStop=
[...]
だから:
しかし、これはsystemd自体で保証されていますか?
はい。
また、ExecStartPreが一種のnohupならどうなりますか?それとも長期間実行されるプロセスですか?
タイムアウトすると終了し、サービスは続行されますExecStopPost
。