當我通過按瀏覽器的「停止」按鈕取消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. shell exec和mysql
- 2. 取得PHP給exec PHP
- 3. PHP stop foreach()
- 4. PHP stop ignore_user_abort進程
- 5. Ant build error = exec-shell returned:1
- 6. exec -PHP return_val是126
- 7. 從shell exec傳遞變量到mysql_query
- 8. 「exec('sh foo.sh')」in PHP not working
- 9. Shell命令適用於命令行,但不適用於PHP exec
- 10. 在運行shell腳本的php上exec()的問題
- 11. 執行單EXEC PHP語句包含兩個shell命令
- 12. PHP shell命令
- 13. Php exec with Java
- 14. Exec後PHP StdErr()
- 15. Php exec編碼
- 16. CutyCapt與php exec
- 17. 從PHP的exec
- 18. stop/cancel ScheduledFuture
- 19. PHP exec Vs. apache用戶shell:自動GIT部署PHP BitBucket服務器
- 20. 使用execv和shell的問題exec
- 21. Golang,exec和背部蜱shell命令
- 22. 螞蟻EXEC shell腳本 - 失去環境
- 23. 從shell而這又被Java EXEC
- 24. EXEC
- 25. exec-shell返回:1 Ant構建錯誤= exec-shell返回:1 exec-shell返回:1平臺安裝包生成失敗Android
- 26. PHP的exec()的CUDA
- 27. PHP exec()不返回
- 28. PHP - Log exec()調用
- 29. exec('unzip gallery.zip',$ return); PHP
- 30. php chown exec()問題!
看看這個問題:http://stackoverflow.com/questions/7582485/kill-mysql-query-on-user-abort/7582527#7582527 – Rijk