我遇到了一个问题,导致我的(慢速)进程停止。我使用一个带有按钮的php页面开始我的后台慢速过程,如下所示:
<form id="trial" method="post" action=""><input name="trial" value="Start!" type="submit">
<?php
set_time_limit(0);
if (isset($_POST['trial'])) {
system("/srv/www/cgi-bin/myscript.sh");
}
?>
在1.5天后的某个时候,进程停止了,我修改了php.ini和apache配置文件,在timeout指令中插入了一个非常高的数字,但它似乎不起作用,或者有其他进程正在停止myscript.sh.。你有什么建议吗?谢谢
根据您的帖子,我假设您可以通过SSH访问服务器。
如果真正的目标是让你的脚本持续运行,为什么不登录并呢
nohup myscript.sh
只要脚本正常运行,它就会在关闭终端后继续运行。
检查日志
要确定脚本失败的原因,您肯定需要检查/var/log/kern.log
和/var/log/syslog
。查找包含脚本或其任何子项的任何条目。您的脚本可能会被内核杀死(超过限制)或在运行时出错。
连续执行脚本会遇到一些问题,因此在系统中每30分钟设置一次Cron。
set_time_limit(30);
system("/srv/www/cgi-bin/myscript.sh");
Cron设置:
30 * * * * php /path/to/your/php/file.php