2014-02-25 34 views
2

我變得不可用我的(Linux 2.6的)遠程系統的一個通過在其上運行該系統置於一個可怕的狀態的過程(或者是霸佔CPU,佔用太多的內存,或者排出一些其他系統資源)。我不能再通過ssh登錄(我得到「寫入失敗:損壞的管道」)或telnet(「拒絕連接」)。如何殺死一個Linux進程,當唯一的訪問是通過FTP?

我能ping系統。奇怪的是,我也可以通過FTP登錄,包括獲取,放入和刪除文件的能力。儘管我擁有超級用戶的密碼,但我無法通過FTP以root身份登錄,因爲系統禁用了該功能。我只能在我的普通用戶帳戶下登錄。

我知道有問題的進程的PID。

這裏是我的問題:鑑於上述信息,有沒有辦法通過從該進程正在運行同一個用戶下FTP登錄殺流氓進程?我不需要它是一個優美的殺戮。例如,刪去的東西在/ var/PROC /,將導致進程崩潰(雖然我試過了,並刪除部分失敗)

-BB

+0

,通過任何機會,這個過程中cgroup中運行?你會寫入這個cgroup嗎?您可以嘗試將CPU使用率限制在極低的水平。 –

+0

是否可以上傳一些PHP腳本?通過瀏覽器運行它? – exussum

+0

# - 我檢查/ cgroup和該樹中的一切都由根擁有,而不是世界可寫:( – ePhrygian

回答

1

我不能發表評論,因爲我是新在這裏,但因爲你沒有把你的問題中的這個信息,這裏有一些事情你應該嘗試,如果可能的話:

  • 是系統主機,如VMware或Xen的上運行的虛擬遠程服務器?如果是這樣,你能訪問主機客戶端來管理虛擬機嗎?
  • 系統是物理服務器嗎?是的,它是否配置了DRAC或iLO,或者您是否可以通過物理訪問來設置DRAC或iLO?這意味着你必須啓動兩個功能中的任何一個的BIOS,這將解決你最初的問題。因此,這帶來了另一個問題...
  • 如果服務器是一臺物理服務器,你可以訪問到另一臺服務器或電腦關閉這一個,你可以聯播串行電纜並使用小型機通過訪問服務器控制檯,就好像你在那裏?

聽起來就像你在一個chroot環境中保護FTP一樣,這是一件好事。所以,你很可能無法通過你的監獄帳戶。

從我的經驗,當有一個很高的CPU和我的SSH連接呈現不可操作的,它確實有恢復或給你足夠的資源,以允許建立新的聯繫的機會。考慮到這一點,你可能會寫一個小腳本(SHELL腳本),試圖每分鐘或每隔幾分鐘登錄到該服務器,直到成功,並且如果成功,自從知道PID之後,它會終止該進程。 SSH命令(客戶端)確實允許您傳遞命令。如果連接成功,並不會發送命令成功,您的客戶端機器捕獲退出狀態和警報發送至您的手機,讓你知道它做你的要求。

0

如果你有寫權限/etc/cron.d/你可以把在可以運行任何你想要的,你想要的任何用戶一個cronjob。