如何重新启动 systemd 中分叉进程之一中唯一失败的进程

如何重新启动 systemd 中分叉进程之一中唯一失败的进程

我有如下的 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

预期的: 上面/opt/liggable/relay/bin/start-acds.sh启动了两个java进程A和B,其中进程B停止进程A进行其中一个操作,在此期间我希望系统等待一段时间以等待A启动,如果没有启动则继续进行重新启动 A,否则不执行任何操作

实际的: 启动/opt/liggable/relay/bin/start-acds.sh两个java进程A和B,其中B想要重新启动A,这样做时systemd会Restart=always重新启动服务A和B,这不是预期的行为。

如果我想在进程 B 启动进程 A 之前等待一段时间而不是 systemd 重新启动它,有人可以建议我该怎么做吗?

相关内容