systemd 看住常驻 PHP 脚本
有一阵用 nohup 跑队列消费者,机器重启就忘了。后来写成 systemd 服务,挂了自动拉,日志进 journal。
[Service]
Type=simple
ExecStart=/usr/bin/php /var/www/queue.php
Restart=on-failure
RestartSec=4
User=www
WorkingDirectory=/var/www
Restart=always 我不用。脚本自己正常退出(没任务就结束)不该被立刻拉起,那会空转。队列改成空转 sleep,再用 on-failure。
注意
- PHP 不要在服务里 daemonize,把前台交给 systemd。
StandardOutput=journal,别自己再写一份没切割的 log。- 内存上限
MemoryMax设上,泄漏时被杀掉比拖死机器好。
常驻进程不是「丢后台」。是声明谁负责把它扶起来。