我如何處理CTRL +Ç在 PHP命令行?在Windows中,Pcntl_*
函數不起作用。Windows中的PHP CLI:處理Ctrl-C命令?
回答
如果你想運行通過命令行PHP中的任務,它需要很長的時間,我會盡量將其安排在徽章和跟蹤哪些已經完成。
現在,你可以完全處理每個徽章(比如:過程,然後將其保存在一個XML文件),並處理整個名單後不但。所以在兩者之間的碰撞/停止只會取消一個徽章而不是所有的徽章。
如果您存儲每個徽章後,您的當前位置的地方,你可以很容易地在你的腳本崩潰或停止恢復。
現在,如果您檢查系統進程列表,看看你的腳本運行時,你可以寫,如果每隔X分鐘就已經墜毀並且尚未運行啓動腳本cron作業。
因此,TL; DR
- 處理作業中的小徽章去年成功處理徽章
- 檢查在啓動 已經運行的進程
- 不斷啓動腳本,直到所有人都高興的
- 商店位置!
這且不說,我喜歡PHP的小的命令行工作,但如果你有這麼大的任務,別的東西可能更適合。檢查一些可以長時間穩定運行的東西,並有辦法顯示它的進展。也許是一個帶簡約GUI的小型C#應用程序。
這可能不是您尋找的CtRL + C解決方案,但它是一個可行的解決方案。我非常懷疑PHP可以處理流程中止!你可能會嘗試你的運氣與「register_shutdown_function」 – ToBe 2013-07-11 13:59:58
那麼,有pcntl_signal,但這隻適用於Unix系統。 – 2015-04-09 18:24:40
- 1. Hudson - Windows執行windows批處理命令
- 2. 轉義「)」在Windows批處理「的命令
- 3. 未找到PHP-CLI命令
- 4. 在php中處理elseif命令
- 5. 處理WPF中的命令
- 6. 如何附加到處理Windows命令?
- 7. windows批處理多行命令?
- 8. Windows批處理:「超時」命令模擬
- 9. Windows批處理:find命令和ERRORLEVEL
- 10. windows批處理命令嵌套變量
- 11. 使用Windows批處理命令
- 12. windows批處理/每行多個命令
- 13. 在php中運行CLI命令
- 14. AWS CLI命令
- 15. AWS CLI Windows Powershell命令錯誤
- 16. Windows命令行PHP
- 17. 來自unix命令的PHP CLI錯誤
- 18. PHP處理MySQL INSERT INTO命令
- 19. 如何使用argparse處理CLI子命令
- 20. windows CLI命令來削減命令行界面
- 21. Windows批處理命令的選擇適用於Windows XP和2003
- 22. 批處理命令錯誤
- 23. windows上的php命令行
- 24. 如何處理PHP中用於命令行腳本的路徑(Windows)?
- 25. GDB的命令處理
- 26. 在Windows批處理文件中使用PowerShell命令的輸出
- 27. 在windows中批處理命令輸出的解析結果
- 28. 將批處理文件命令拆分爲Windows中的多行
- 29. Windows批處理腳本中的sed命令
- 30. 將命令的結果保存在變量中,Windows批處理
你想達到什麼目的? – 2012-03-01 20:22:40
沒有Windows測試,也許['w32api_register_function'(http://www.php.net/manual/en/function.w32api-register-function.php)與['SetConsoleCtrlHandler'(HTTP:// MSDN。 microsoft.com/en-us/library/windows/desktop/ms686016(v=vs.85).aspx),但這是瘋狂猜測在這裏...很可能是錯誤的。 – Wrikken 2012-03-01 20:23:55
@Dagon當我打斷它時,我需要腳本來做些事情。例如,在退出之前將內存中的xml dom寫入文件。 – x74x61 2012-03-01 20:39:38