bash脚本超时


bash script timeout

我遇到了一个问题,导致我的(慢速)进程停止。我使用一个带有按钮的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