linux中如何用命令結束一個進程
有時想要結束一個進程,比如錯誤的進程,該如何殺死它?
第一步,找到這個進程信息
1、用top命令
top命令比較綜合的動態顯示系統進程運行情況,比如要查找redis-server的進程id,可以看到它PID為2171
2、用ps命令(首選)
ps也是最強大的進程查看命令之一,結合grep可以快速查找進程信息。如下,可以看到它PID為2171:
# ps aux | grep redis-server
root 2171 1.4 1.9 1103476 154012 ? Ssl May11 202:18 /data/applications/redis-3.0.5/bin/redis-server 127.0.0.1:6379
root 14283 0.0 0.0 112648 928 pts/0 S+ 11:09 0:00 grep --color=auto redis-server
3、用lsof命令
有時你確定進程的監聽埠,那麼你也可以用lsof命令查看是哪個進程打開了該埠。比如你想找到nginx進程,如下,可以找到PID為1237、1242
# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 1237 root 6u IPv4 8816 0t0 TCP *:http (LISTEN)
nginx 1242 www 6u IPv4 8816 0t0 TCP *:http (LISTEN)
第二步、結束該進程
1、用kill命令
kill命令經常被使用,它通過發送指定信號給進程或進程組,可以用kill -l 查看都有哪些信號。
其中9這個信號經常被使用,用來強制結束。
比如我們要強制結束第一步中的nginx進程,可以這樣:
kill -91237
kill -91242
執行ps aux | grep nginx 可以發現進程列表中已經沒有nginx了
2、用killall命令
killall命令根據進程名來結束進程,比如:
killall nginx
它會結束所有nginx的進程。
原創不易,給個贊吧!
TAG:CentOS |