我管理Unix系統,有時像CGI腳本這樣的程序永遠運行,有時會消耗大量CPU時間並浪費資源。殺死長時間運行失控程序的程序
我想要的程序(通常從cron調用),它可以殺死這些逃逸,根據以下標準(與AND和OR的組合):
- 名稱(由正則表達式給定)
- CPU時使用
- 經過的時間(其被阻塞在I/O程序)
我真的不知道該怎麼在這種節目類型的搜索引擎。我當然可以用Python自己寫,但我很懶,可能有一個很好的程序已經存在?
(我沒有標記我用語言名稱的問題,因爲在Perl或Ruby或程序的任何會工作爲好)
我管理Unix系統,有時像CGI腳本這樣的程序永遠運行,有時會消耗大量CPU時間並浪費資源。殺死長時間運行失控程序的程序
我想要的程序(通常從cron調用),它可以殺死這些逃逸,根據以下標準(與AND和OR的組合):
我真的不知道該怎麼在這種節目類型的搜索引擎。我當然可以用Python自己寫,但我很懶,可能有一個很好的程序已經存在?
(我沒有標記我用語言名稱的問題,因爲在Perl或Ruby或程序的任何會工作爲好)
大多數watchdig這樣的程序或庫只是想看看是否給定進程正在運行,所以我會說你最好寫自己的,使用現有的庫提供過程信息。
嘗試使用系統級配額執行。大多數系統將允許爲不同用戶設置每個進程的CPU時間限制。
實例:
/etc/security/limits.conf
/etc/login.conf
CGI腳本通常可在他們自己的用戶ID來運行,例如使用mod_suid
爲Apache。
這可能是更多的東西像什麼您尋找的:
在這種情況下,它是通過CGI運行的Apache,我毫不猶豫地懲罰,因爲一些腳本的用戶的httpd。根據程序的不同,可能會更改我的Apache安裝程序以使其他用戶運行CGI?從來沒有嘗試過。 – bortzmeyer 2008-12-21 21:03:35
是的,你可以用mod_suid來完成。 – 2008-12-22 07:36:16