systemdの分岐プロセスの1つで失敗したプロセスのみを再起動する方法

systemdの分岐プロセスの1つで失敗したプロセスのみを再起動する方法

以下のようにsystemdファイルがあります

[Unit]
Description=ACDS Relay Service (running on port 10400)

[Service]
Type=forking
PIDFile=/opt/liggable/relay/var/relay.pid
RemainAfterExit=no
ExecStart=/bin/bash /opt/liggable/relay/bin/start-acds.sh
ExecStop=/bin/kill $MAINPID
Restart=always
WorkingDirectory=/opt/liggable/relay
User=javauser
Group=javauser
PrivateTmp=true
TimeoutSec=90
SuccessExitStatus=1 143

[Install]
WantedBy=multi-user.target

期待される: 上記で2つのJavaプロセスAとBが起動しました/opt/liggable/relay/bin/start-acds.sh。プロセスBは、プロセスの1つを実行するためにプロセスAを停止する。この間、システムはAが始まるのを待つことを望みます。 Aを再起動してください。それ以外の場合は何も行いません。

実際: BがAを再起動しようとしている2つのJavaプロセスAとBを起動します/opt/liggable/relay/bin/start-acds.sh。これを行うと、systemdはRestart=alwaysサービスAとBを再起動します。これは予想される動作ではありません。

プロセスBがシステムを再起動するのではなく、プロセスAを起動する前にしばらく待ちたい場合は、誰でもこれを行う方法を提案できますか?

ベストアンサー1

おすすめ記事