Systemd 在不同用户上分叉并在分叉进程失败时重新启动

Systemd 在不同用户上分叉并在分叉进程失败时重新启动

我的单位文件中有以下内容。

[Unit]
Description=Apache Solr as a Service


[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/opt/solr/solr start
ExecStop=/opt/solr/solr stop

我的分叉进程很明显/opt/solr/solr是由RUNAS solr-usersolr-user

当分叉进程出现故障时,我需要重新启动 systemd 进程。所以我在单元文件中添加了以下内容

Restart=on-failure
PIDFile=/opt/solr/solr-8080.pid

当我以 root 身份启动服务时,sudo systemctl start solr-service进程成功启动,但出现以下错误,并且它一次又一次地停止和启动。

systemd[1]: New main PID 12345 does not exist or is a zombie.

相关内容