Systemd Bash 脚本守护进程导致超时并失败

Systemd Bash 脚本守护进程导致超时并失败

我有一个服务文件:Memory.service

[Unit]
Description=Memory Service

[Service]
ExecStart=%h/opt/bin/Memory --quiet
SyslogIdentifier=MemoryService

[Install]
WantedBy=default.target

它启动一个名为 Memory 的 bash 脚本,每 10 秒计算一次可用内存百分比,如果低于特定水平,则会杀死 Firefox。

因此,我的 bash 脚本基本上就像一个守护进程,应该在后台运行而不退出。

当我运行此 systemd 服务时,该服务始终存在并超时

$ systemctl --user start Memory
Job for Memory.service failed because a timeout was exceeded.

如何让这个脚本在后台持续运行?我想按照服务文件中提到的方式启动它。


注意:我自己能够在终端上成功运行该脚本。

答案1

您可能会遇到此问题,因为您的脚本需要更多时间来运行。

默认值为 90 秒。

DefaultTimeoutStartSec=DefaultTimeoutStopSec=默认为 90 秒。

尝试添加TimeoutStartSec到您的配置服务中,输入超过90秒取决于您的脚本。

供参考:https://www.freedesktop.org/software/systemd/man/systemd.service.html

相关内容