Linux
從 php 腳本停止無限循環在 linux 終端中執行
我目前正在學習如何在 php 中創建隊列的教程。在 php 腳本中創建了一個無限循環。我簡化了程式碼,以便專注於手頭的問題:
while(1) { echo 'no jobs to do - waiting...', PHP_EOL; sleep(10); }
我使用 PuTTy(通過 SSH 連接)連接到我的共享主機帳戶(godaddy)中的 linux 終端。如果我
php queuefile.php
在終端中執行,我知道它將毫無問題地執行(已經用有限的 for 循環而不是無限的while 循環測試了程式碼)。**問題:一旦無限循環開始,我如何退出它?我已經在網上閱讀了創建“檢查”**程式碼的選項,它是否應該繼續使用類似以下程式碼的內容循環:
$bool = TRUE; while ($bool) { if(!file_exists(allow.txt)){$bool = FALSE} //... the rest of the code
雖然我很好奇是否有可以在終端中輸入的命令,或者我可以按下的一組鍵會導致腳本終止。如果有任何終止腳本的方法,或者如果有更好的方法來進行之前的**“檢查”**,我希望得到您的回饋!
假設您沒有安裝任何信號處理程序,您可以通過按 Ctrl-C 將 SIGINT 發送到程序(如果它在前台)。如果它不在前台,您可以使用
pkill -INT -f '^php queuefile.php$'
.預設情況下,
php
將在收到 SIGINT 時退出。如果由於某種原因安裝了信號處理程序,您也可以嘗試使用
TERM
信號(預設使用pkill
),最終如果找不到合理的信號來殺死程序,則可以使用(暴力和強制)SIGKILL
,通過傳遞-TERM
topkill
代替-INT
.