在linux命令下,如果需要終止某個進程,可以使用kill或者killall等命令來實現。終止命令的原理都是向linux內核發送一個系統操作的信號以及某個進程的ID,然后系統內核會根據指定的進程ID進行相應的處理。
kill命令典型的用法:首先使用ps命令查出PID,然后使用kill命令進行處理。
語法格式如下:kill [信號代碼] 進程ID
用法:
ps -ef | grep dhcp
輸出結果:root ? ? 25933 25749 ?0 10:59 pts/0 ? ?00:00:00 grep --color=auto dhcp
然后執行:kill 25933
技巧:也可以通過pidof快速的方式進程id,可以使用pidof命令
比如執行:pidof mysqld
輸出結果:16502
然后執行:kill 16502
kill信號代碼:kill信號代碼共有64種,
常用的主要有三個:
HUP(1):重啟,重啟的時候不會修改主進程的ID,但是子進程的ID會改變。
KILL(9):強行殺掉,使用-9參數會強制殺掉進程,其效果是立即殺死進程,該信號不能被阻塞或忽略。因為進程ID都是數字,很容易寫錯操作殺掉系統關鍵的進程,并且不會清理之前申請的內存,會一定程度上造成“內存泄漏”。
TERM(15):正常結束,它會使進程正常退出,Linux默認會按照這種方式執行進程的終止。
killall命令:Linux系統還可以使用killall來終止進程,命令比較簡單有更加安全。
語法格式:killall 進程名稱
比如:killall mysqld #終止系統中所有的mysqld進程