當我通過按瀏覽器的「停止」按鈕取消PHP腳本時,看起來exec(..)
運行的外部二進制文件沒有停止。如果服務器配置爲不處理每個用戶多於一個的腳本,則會在運行命令完成之前禁用任何用戶活動。我怎麼能告訴PHP在取消時殺死執行的進程?php stop shell exec取消
0
A
回答
1
總之,有一個難點。
你的瀏覽器對服務器說:「做這個頁面」,然後服務器回覆它在運行腳本時得到的結果。如果客戶端消失,服務器通常仍會完成腳本,而瀏覽器是否聽取該信息。
我唯一能想到的方式是,如果服務器是UNIX,那麼可以嘗試一些方法來確定運行命令的PID,並且如果您閱讀了http://php.net/manual/en/features.connection-handling.php,則可以設置事件發生在斷開連接時。接下來你可以讓PID運行另一個命令來終止命令。
但是,我不想保證結果。
0
在網頁中使用exec來進行午餐過程並保留返回的pid。
$pid = exec($command);
在UI檢查後,如果過程結束,如果需要,允許用戶與像殺的過程:由於它是由阿帕奇開始
exec("kill -9 $pid");
,阿帕奇應該能夠殺死它。 我看到ajax調用某種REST API,並且應該注意不要讓用戶更多地幹掉他們開始的進程。
相關問題
- 1. PHP Ajax Shell Exec()進度
- 2. shell exec和mysql
- 3. Shell命令不能通過exec()在php
- 4. 取得PHP給exec PHP
- 5. PHP stop foreach()
- 6. PHP stop ignore_user_abort進程
- 7. 從exec()獲取pid在php
- 8. 'adb shell start/stop'是做什麼的?
- 9. Dockerfile CMD shell與exec形式
- 10. nodejs exec保持shell活着?
- 11. 在子shell時間EXEC
- 12. Ant build error = exec-shell returned:1
- 13. Contiki:sky-shell-exec ELF_Loader錯誤
- 14. 有關shell exec的問題?
- 15. 從Zend_Db_Adapter :: exec獲取錯誤消息
- 16. 撥動開關EXEC shell腳本
- 17. Stop Stream.BeginRead()
- 18. exec -PHP return_val是126
- 19. 從shell exec傳遞變量到mysql_query
- 20. 「exec('sh foo.sh')」in PHP not working
- 21. PHP exec()使用內存
- 22. 使用PHP的exec重定向shell命令的輸出()函數
- 23. php shell exec的作用與直接運行命令不同
- 24. Shell命令適用於命令行,但不適用於PHP exec
- 25. PHP不能從shell-exec()函數運行MPI
- 26. 如何使shell exec在後臺運行而php繼續
- 27. 執行單EXEC PHP語句包含兩個shell命令
- 28. PHP了shell_exec和exec不與shell腳本工作
- 29. 在運行shell腳本的php上exec()的問題
- 30. PHP shell命令
看看這個問題:http://stackoverflow.com/questions/7582485/kill-mysql-query-on-user-abort/7582527#7582527 – Rijk