2012-07-14 156 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