2012-09-25 80 views
1

我基本上有一個cron工作每分鐘調用一個腳本。如果前面的腳本仍在運行,腳本將立即停止(檢查前一腳本的活動時間)。從CLI調用PHP腳本時何時停止執行?

所以我犯了一個錯誤,腳本進入了一個無限循環(我知道它是由cron至少調用一次)。我創建了一個修復並上傳到服務器,但我仍然想知道:

  1. bug的腳本運行多長時間?
  2. 我怎麼知道它是否仍在運行?
  3. 終止腳本是什麼?爲什麼?

腳本只是echo一遍又一遍地重複相同的文字。

P.S. PHP在腳本中的最大執行時間被設置爲0(無限),並且我沒有直接訪問服務器的權限,只有FTP。

回答

0

我怎麼知道它是否仍在運行?

剛剛成立了一個新的cron作業,但有cron命令是一個東西,可以幫助您調試: 一個有用的人會

ps -af | grep php > /some/path/to/mylogfile.txt 

上運行的進程的ps命令列出的信息。這些標誌,輸出的一部分將是啓動的過程中,原來的linux命令,所以我們可以grep線和尋找php因爲原始命令可能是這樣的:

php myscript.php 

輸出重定向到mylogfile.txt供您在cron作業運行後手動讀取。

進程ID應該是輸出的一部分。然後您可以在該進程ID上使用kill命令,只需將該命令作爲假cron作業輸入即可。

-2
  1. ,直到腳本運行到
  2. 看一看運行(在php.ini文件或參數或者set_time_limit方法定義max_execution_time)的超時處理
  3. 發送kill命令腳本或等到發生超時

PS:你必須爲php.ini文件 - 一個命令行和一個用於Apache的 - 一定要更改的max_execution_time在命令行ini文件

+0

沒有shell訪問權限。 –

+1

您仍然可以聯繫服務器支持來提高執行時間或在代碼中設置執行時間。要檢查正在運行的proccesses,你可以使用php函數.. – Philipp