以下のように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を起動する前にしばらく待ちたい場合は、誰でもこれを行う方法を提案できますか?