我有一个 php 脚本,其中包含来自 Fuelphp 的环境变量,我使用如下命令运行它,FUEL_ENV=production php oil run task
但是,我希望它作为守护进程运行,退出时会自动重新启动。它存在的主要原因是由于内存使用,任务处理大量数据并缓慢泄漏(PHP 往往如此)
我尝试了这个但是它使脚本陷入了无法终止的无限循环(所以我甚至没有尝试 nohupping 它因为我认为我无法终止它)
while true; do FUEL_ENV=production php oil run task && break; done &
那么,设置一个当其存在时会自行重新启动的 PHP 脚本的最佳方法是什么呢?
答案1
感谢@Michael Hampton。弄清楚了如何使用环境变量为 php 设置 systemd,并且效果很好。
[Unit]
Description=<description>
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=paullb
Environment=FUEL_ENV2=development
ExecStart=/usr/bin/php /var/www/<dir>/oil r <name>
[Install]
WantedBy=multi-user.target