我正在開發一個正在運行的守護進程,現在無法創建任何新進程(即我無法啟動新進程來殺死其他惡意進程)。因此,我需要能夠從遠端電腦終止進程。在沒有管理員權限的情況下如何遠端「殺死」?如果我無法以普通使用者身分從遠端電腦終止我自己的進程,請告訴我,以便我可以將其標記為正確答案。
答案1
為了終止機器上執行的進程,某些本機進程(或核心)必須發出終止訊號。因此,您需要一種方法來使進程發出該訊號,並且由於您無法建立新進程,因此您需要找到一種完全依賴已執行進程的方法。
沒有標準的守護程序可以幫助您。它們都會處理您的身份驗證,然後派生一個以您的身份運行的新進程(例如 shell)。因此,如果您沒有控制台存取權限並且沒有與機器的現有交互,那麼您就不走運了。
從你的評論來看,聽起來你的機器上仍然有一個外殼。然後你可以做一些事情。您無法執行任何外部進程,例如ls
或ps
。但您可以執行內建指令,例如echo
、read
、 和kill
(kill
不是所有 shell 中的內建指令,但它是所有支援作業控制的 shell 中的一個,例如 bash 和 zsh)。
/proc
每個進程在:下都有一個關聯的目錄,/proc/12345
其中 12345 是進程 ID。因此,您可以透過探索獲得一些有關存在的資訊/proc
。echo
使用通配符在這裡很有幫助,例如cd /proc; echo [0-9]*
顯示所有正在運行的進程的進程 ID。如果 shell 是 zsh,你可以使用 glob 限定詞做很多事情;例如,echo /proc/*(u$UID)
僅顯示在您的使用者 ID 下執行的進程。
一種無需分叉即可顯示文件內容的方法是
while read -r line; do
echo "$line"
done </path/to/file
您可以透過將多個進程全部傳遞給 來一次終止多個進程kill
。如果您已識別出屬於您的守護程序的進程,請嘗試使用群組領導者的進程 IDkill -9 -PGID
來終止其進程組。PGID
您可以使用 找到進程 123 的進程組 ID </proc/123/stat read pid tcomm state ppid pgrp sid more; echo $pgrp
。 (相同的資訊以更易讀的形式存在,/proc/123/
但您不適合閱讀它。)您也可以嘗試使用以下命令向所有進程(包括原始 shell)發送訊號:
trap : NUM
kill -NUM -1
選擇 (9) 以外的 NUM 值,KILL
以便該trap
指令確實會導致您的 shell 忽略該訊號(KILL
無法擷取)。
答案2
以下資訊是在http://www.cyberciti.biz/faq/kill-process-in-linux-or-terminate-a-process-in-unix-or-linux-systems/
Linux/UNIX下使用kill指令殺死進程
Kill 指令可以在 Linux 和 UNIX/BSD 等作業系統下運作。
步驟#1:首先,您需要找出進程PID(進程ID)
使用 ps 指令或 pidof 指令找出進程 ID (PID)。語法: ps aux | grep 進程名 pidof 進程名
例如,如果進程名稱為lighttpd,則可以使用下列任一命令來取得進程ID:
ps aux | grep lighttpdOutput
lighttpd 3486 0.0 0.1 4248 1432 ? S Jul31 0:00 /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
lighttpd 3492 0.0 0.5 13752 3936 ? Ss Jul31 0:00 /usr/bin/php5-cg
或使用 pidof 命令,該命令用於查找正在運行的程式的進程 ID:
pidof lighttpd
輸出
3486
步驟#2:使用 PID(進程 ID)終止進程
上面的指令告訴你lighttpd進程的PID(3486)。現在使用這個 PID 終止進程:
# kill 3486
或者
# kill -9 3486
其中,-9是特殊的Kill訊號,它將殺死進程。
Killall 命令範例
請勿在 UNIX 系統上使用 Killall 指令(僅限 Linux 指令)。您也可以使用killall命令。 Killall 指令會依名稱殺死程序(無需尋找 PID):
# killall -9 lighttpd
殺死火狐進程:
# killall -9 firefox-bin
正如我之前所說,UNIX 系統上的killall 還做了其他事情。它會殺死所有進程,而不僅僅是特定進程。不要在 UNIX 系統上使用killall(使用kill -9)。
答案3
正如您在評論中所說,管理員是目前唯一可以幫助您的人。我建議你獲得Perl 食譜並閱讀16.19節了解處理殭屍的正確方法。