gpt4 book ai didi

c - 即使在 centos 7.3 中不存在 ExecStart 进程后,Systemd 服务状态仍保持运行

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:18:51 26 4
gpt4 key购买 nike

我已经创建了一个 systemd 服务,就像任何触发运行进程的中断然后它必须自行重启一样。但服务显示其状态为正在运行(使用 systemctl status x.service),即使在进程退出后(在 exec_start 中提到)。下面是我的服务脚本

{

[Unit]
Description=xserverd
After=syslog.target rsyslog-x.service systemd-modules-load.service
Requires=rsyslog-x.service systemd-modules-load.service
[Service]
Type=forking
ExecStart=/opt/bin/xserver
Restart=always
RestartSec=2s
RemainAfterExit=no
RestartPreventExitStatus=SIGINT
KillMode=process
TimeoutSec=300s
[Install]
WantedBy=multi-user.target

/opt/bin/xserver 是一个 C 可执行文件,具有 777 权限。为 SIGINT 和 SIGSEGV 添加了信号处理程序。 SIGINT 是说用户正确退出。 SIGSEGV 将回溯记录到我们的自定义日志文件。每当进程收到这些信号时,它将退出{退出(EXIT_FAILURE)

最佳答案

对于 Type=forking,systemd 假定启动命令的子进程或子进程的子进程是守护进程。

如果您的守护进程不这样做,请将其更改为 simple

关于c - 即使在 centos 7.3 中不存在 ExecStart 进程后,Systemd 服务状态仍保持运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46682764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com