2013-08-16 92 views
1

我想殺死一個php腳本,說腳本A.php,(當它運行時)從另一個php腳本內部說腳本B.php。當腳本A.php開始時,我想將某種ID保存到數據庫中。當腳本B.php開始運行時,我想從數據庫中獲取ID,並立即將其用於exitkill腳本A.php如何從另一個php腳本中殺死一個php腳本?

這是可能的,我該怎麼做?

更新1

可以有a.php只會多個實例在這種情況下,我只想殺a.php只會單一實例。我可以在每個腳本的開始處獲取進程ID,並將其保存在數據庫或SESSION變量中B.php知道要殺死哪個A.php腳本。

此應用程序用於網站的後端程序。殺死腳本A.php的原因是因爲有些用戶點擊許多觸發A.php運行的按鈕。由於A.php需要大約5秒的時間才能運行,並且只需要最新版本的A.php,所以我想殺死其他的仍然在運行的A.php腳本來節省服務器資源,因爲我對結果不再感興趣。

+3

這聽起來像一個有些奇怪的做法。你究竟在努力實現什麼? –

+0

你有任何你想分享的代碼嗎? – Paul

+0

它看起來像是你爲你的任務選擇了錯誤的語言,或者你的項目設計不好。在理想的世界中,PHP腳本運行一次並終止。 –

回答

1

要從scriptB.php中終止scriptA.php,您必須能夠執行系統命令,並且不應該在Web服務器中運行此命令。

您可以在數據庫中存儲scriptA.phppid。要得到它使用getmypid()。 在scriptB.php您可以使用system()功能來殺死對方的過程:

system("kill $pidOfScriptA"); 
+0

如果您在Windows上運行PHP,該怎麼辦? –

相關問題