gpt4 book ai didi

linux - systemd:启动后立即出现 SIGTERM

转载 作者:IT王子 更新时间:2023-10-29 01:00:22 25 4
gpt4 key购买 nike

我是第一次尝试 systemd。我想在系统启动时启动一个进程。我在启动和运行它时遇到了问题。

systemd 应该运行脚本 (start.sh)。该脚本在后台启动一个进程(我们称之为 P)并以代码 0 退出。P 一直运行直到信号发生。

如果我手动运行 start.sh 一切正常。

如果我让它由 systemd 启动,P 在启动后立即得到一个 SIGTERM 并终止。

所以它开始了,但是信号呢?它终止了 P,我不确定它的起源和原因是什么。

也许我的单位是错误的,但我不知道如何设置它以满足我的需要。我尝试了服务类型简单、空闲和一次性。

感谢您的帮助!克里斯

这是我的单位。

[Unit]
Description=Test
After=sshd.service

[Service]
Type=oneshot
ExecStart=/home/max/start.sh start
Restart=no
User=root
SuccessExitStatus=0

[Install]
WantedBy=multi-user.target

这就是状态。

Loaded: loaded (/etc/systemd/system/test.service; enabled)
Active: inactive (dead) since Die 2016-02-23 20:56:59 CET; 20min ago
Process: 1046 ExecStart=/home/max/test.sh start (code=exited, status=0/SUCCESS)

最佳答案

当 start.sh 完成时,systemd 会杀死与 start.sh 相同的 cgroup 中的所有内容

您的选择是:

  • 在 Unit 部分设置 KillMode 以进行处理(默认为 control-group)。这将导致 systemd 仅终止它直接触发的进程。

  • 不让 start.sh 在后台启动并退出,而是在前台执行它

我认为在您的情况下,选项 2 可行且更直接。

来源:https://unix.stackexchange.com/a/231201/45329

关于linux - systemd:启动后立即出现 SIGTERM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35587384/

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