Linux下PHP程序如何常驻内存中在后台运行?
该示例是将一个PHP
脚本常驻后台执行。
新建一个shell脚本,名为script.sh
#!/bin/bash
. /etc/profile
ps -fe | grep "php mycron.php" | grep -v grep
if [ $? -ne 0 ]
then
echo "not running,start process....."
cd /var/www/html/default
php mycron.php > /dev/null 2>&1 &
else
echo "process is already running....."
fi
同时在定时任务中增加
* * * * * bash /path/to/script.sh
注意点:
nohup
是为了在用户退出时进程仍能运行,即进程不会被hup
挂起。- cron中的任务默认是
nohup
执行的,所以无需nohup
,但是由于cron中的任务不是在终端中运行,也无关用户状态,所以如果要实现进程常驻后台运行,需要在脚本的开头加上. .profile
,即自己的配置文件,如果没有该文件,可直接. /etc/profile
&
还是要加上的,以使进程在后台运行。> /dev/null 2>&1
表示将正常输出输出到空设备,将错误输出输出到同一文件。也可重定向到另一文件,便于日后查后,>
表示覆盖输出,每次重启时都会覆盖,也可以使用>>
追加。
2 thoughts on “Linux下PHP程序常驻后台运行”