2012-07-14 108 views
0

我有一个问题阻止了我的(慢)过程。我使用PHP页面的按钮如下开始我的背景缓慢的过程:bash脚本超时

<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的配置文件中插入一个非常高的数字在超时指令中,但它似乎不起作用,或者有一些其他进程正在停止myscript.sh ..你有什么建议吗? 谢谢!

+2

1.5天?你到底在做什么? – 2012-07-14 14:29:42

+0

你是在浏览器中运行这个页面吗? – Sathishkumar 2012-07-14 14:30:29

+0

是在浏览器中。 – Tiutto 2012-07-14 14:50:10

回答

0

我假设你有机会通过SSH根据您的文章服务器。

如果真正的目标是让你的脚本连续运行,为什么不能登录并

nohup myscript.sh 

只要你的脚本的行为,它会继续,只要它需要您关闭后运行终点站。

检查日志

要确定你的脚本为什么失败,你一定要检查/var/log/kern.log/var/log/syslog。查找任何包含您的脚本的条目它的任何孩子。你的脚本可能会被内核杀死(超出限制)或在运行时出错。

+0

好主意..我会尝试 – Tiutto 2012-07-14 14:59:09

+1

我在日志中发现脚本有一个错误..谢谢! – Tiutto 2012-07-15 23:50:42

0

不断执行脚本会出现一些问题,因此在系统中每30分钟设置一次Cron。

set_time_limit(30); 
system("/srv/www/cgi-bin/myscript.sh"); 

的Cron设置:

30 * * * * php /path/to/your/php/file.php 
+0

我无法使用cron .. – Tiutto 2012-07-14 15:00:08

+0

因此您使用浏览器来执行脚本。为您的浏览器安装自动页面加载插件并每5秒执行一次页面。如果代码停在布尔斯维尔,它将在5秒后自动重新加载。 – Sathishkumar 2012-07-14 15:54:02

+0

我不希望脚本重新启动(或由cron重新执行),我只需要它启动/终止正确.. – Tiutto 2012-07-14 17:28:29