我有一个服务文件: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