PHP-nohup 的程序为什么会自己停止

PHP-nohup 的程序为什么会自己停止

归属感 发布于 2017-01-20 字数 194 浏览 1434 回复 4

我在后台用nohup运行了一些php的后台脚本,但有时会有一两个脚本自己停止,我还得手动再让他重启,我的命令是nohup php /data/app/www/www.abc.com/webroot/index.php queue >& /dev/null &

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

瑾兮 2017-10-08 4 楼

nohup 可以将程序推送到后台运行.
但他不能管程序的状态, 程序是否停止, 主要还是程序本身是否正常.

PHP程序运行要注意的地方是:

set_time_limit(0); 设置无超时时间
ini_set('memory_limit', '1024M'); 设置内存, CLI方式运行可能需要更多的内存, 这个要根据程序来决定, 避免程序因内存不够而退出
程序本身要确保无错误, 至少是不能中断程序运行的错误.
利用 nohup php test.php /error.log 2>&1 & 来记录程序错误, 排查程序中止的问题.

浮生未歇 2017-08-18 3 楼

先检查是系统问题还是程序问题,若是程序问题你可以分析下nohup.out,你可以写个shell来检查是否还在运行,若停止则重新启动nohup php /data/app/www/www.abc.com/webroot/index.php queue >& /dev/null &,并将这个shell写入cron定期执行。

晚风撩人 2017-04-29 2 楼

你可以把程序的输出导入到一个日志文件中,然后在下次脚本失败时,看一下这个日志分析下错误原因,看一下是系统原因还是程序原因。

想挽留 2017-02-13 1 楼

如果系统运行状态良好,程序自动停止,一般是因为程序自身的原因,程序出错崩溃、操作数据库失败、读写文件或日志失败、占用内存原来越大引起崩溃等有有可能,我这边也有程序一直放着跑了大半年,然后突然奔溃掉的,预防的办法就是把重启命令写得crontab中,定期自动重启程序