我是 systemd 新手,同事给我的脚本有问题。此脚本在 Debian 7 中作为后台进程运行,但在 Debian 8 中却不行。我决定将其重写为 systemd。
我有这个chunk8.service
(位于/etc/systemd/system
):
[Unit]
Description=Chunk-search Daemon
Requires=mysql.service apache2.service
[Service]
PIDFile=/var/run/chunkrm8.pid
ExecStart=/usr/bin/php /var/www/chunkrm8/task_pool.php > /dev/null 2>/dev/null
Type=forking
KillMode=process
[Install]
WantedBy=multi-user.target
当我重新启动系统(或运行systemctl start chunk8.service
)时,我得到:
● chunk8.service - Chunk-search Daemon
Loaded: loaded (/etc/systemd/system/chunk8.service; enabled)
Active: failed (Result: timeout) since Tue 2016-04-19 16:21:20 MSK; 1min 1s ago
我做错了什么?提前致谢。
答案1
您指定了Type=forking
,但是您启动的程序从未在超时期限内分叉,因此 systemd 认为它没有正确启动,将其终止,并将该服务标记为失败。
您确定您的进程会自行守护进程吗?PHP 脚本执行此操作的情况相当罕见。也许您应该改用Type=simple
。