1
我有一個網站,定期獲取大量的睡眠php進程。我的託管服務設置了20個併發運行進程的限制。如果超過限制,我的網站就會出現503錯誤。需要一種方法來選擇性地殺死睡眠php進程
這很少見,似乎與訪問我的網站的人數沒有任何關聯。
作爲一個安全措施,我希望有一個PHP腳本的cron作業,可以殺死已經睡了10分鐘以上的php進程。
我有一個PHP函數,將殺死睡眠超過10分鐘的所有熟睡的MySql進程;
public function kill_sleeping_mysql_processes()
{
$result = $this->db->query("SHOW FULL PROCESSLIST");
foreach($result->result_array() as $row)
{
if ($row['Command'] == "Sleep" && $row['Time'] > 600)
{
$this->db->query("KILL {$row['Id']}")
}
}
}
問題是我怎麼能做到這一點與PHP進程相同?
我可以用這段代碼讀出php進程。
exec("ps aux | less", $output);
我可以用這段代碼殺死特定的php進程,如果我有pid;
$pid = 11054;
exec("kill -9 $pid");
但是我該如何選擇性地殺死已經睡眠超過10分鐘的php進程呢?
只是好奇,如果你已經檢查你的日誌,並試圖解決根本問題? – ficuscr
是的,我試圖解決根本問題無濟於事......我也多次聯繫我的主持人的支持尋求幫助。 –
它幾個星期或幾個月沒有問題,然後突然之間我得到了一系列停滯腳本,使我的網站下降。 –