學(xué)習(xí)內(nèi)容
程相關(guān): ps, kill
個人總結(jié)
進程描述
** 進程** :當(dāng)我們運行程序時,Linux 會為程序創(chuàng)建一個特殊的環(huán)境,該環(huán)境包含程序運行需要的所有資源,以保證程序能夠獨立運行,不受其他程序干擾。這個特殊的環(huán)境就是進程。
舉例:每個 Linux 命令都與系統(tǒng)中的程序?qū)?yīng),輸入命令,Linux就會創(chuàng)建UI個進程。簡單的說,進程就是程序?qū)嵗?/strong>。Linux 系統(tǒng)通過一個五位數(shù)字跟蹤程序的運行狀態(tài),這個數(shù)字稱為 PID(程序狀態(tài)字),用來記錄當(dāng)前系統(tǒng)的運行狀態(tài)。
相關(guān)命令
-
ps
ps
查看當(dāng)前正在運行的進程
ps -f
查看當(dāng)前正在運行的進程的詳細信息
ps -a
顯示所有用戶的所有進程
ps -x
顯示無終端的進程。
ps -u
顯示更多信息,類似于 -f 選項。
ps -e
顯示所有進程。
? ~ ps
PID TTY TIME CMD
20348 pts/23 00:00:00 zsh
20741 pts/23 00:00:00 ps
? ~ ps -f
UID PID PPID C STIME TTY TIME CMD
zhyingj+ 20348 4905 0 21:47 pts/23 00:00:00 zsh
zhyingj+ 20751 20348 0 21:50 pts/23 00:00:00 ps -f
字段說明:
UID 進程所屬用戶的ID,即哪個用戶創(chuàng)建了該進程。
PID 進程ID。
PPID 父進程ID,創(chuàng)建該進程的進程稱為父進程。
C CPU使用率。
STIME 進程被創(chuàng)建的時間。
TTY 與進程有關(guān)的終端類型。
TIME 進程所使用的CPU時間。
CMD 創(chuàng)建該進程的命令。
-
kill
kill [參數(shù)]<進程號>
殺死指定進程號的進程
命令功能:
發(fā)送指定的信號到相應(yīng)進程。不指定型號將發(fā)送SIGTERM(15)終止指定進程。如果任無法終止該程序可用“-KILL” 參數(shù),其發(fā)送的信號為SIGKILL(9) ,將強制結(jié)束進程,使用ps命令或者jobs 命令可以查看進程號。root用戶將影響用戶的進程,非root用戶只能影響自己的進程。
參數(shù)說明:
-l
信號,若果不加信號的編號參數(shù),則使用“-l”參數(shù)會列出全部的信號名稱
-a
當(dāng)處理當(dāng)前進程時,不限制命令名和進程號的對應(yīng)關(guān)系
-p
指定kill 命令只打印相關(guān)進程的進程號,而不發(fā)送任何信號
-s
指定發(fā)送信號
-u
指定用戶
? ~ kill -l
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS
信號說明:
只有第9種信號(SIGKILL)才可以無條件終止進程,其他信號進程都有權(quán)利忽略。 下面是常用的信號:
HUP 1 終端斷線
INT 2 中斷(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 終止
KILL 9 強制終止
CONT 18 繼續(xù)(與STOP相反, fg/bg命令)
STOP 19 暫停(同 Ctrl + Z)
使用:
1.列出所有信號 kill -l
? ~ kill -l
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS
2.得到指定信號數(shù)值
? ~ kill -l kill
9
? ~ kill -l INT
2
3.先用 ps 查找進程,然后 kill 掉
? ~ ps -ef|grep vim
zhyingj+ 23111 22309 0 22:34 pts/26 00:00:00 vim text.txt
zhyingj+ 23501 23112 0 22:36 pts/27 00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn vim
? ~ kill 23111 //殺死
? ~ kill 23111
kill: kill 23111 failed: no such process
4.強制殺死指定進程kill -9 PID
? ~ ps -ef|grep vim
zhyingj+ 23556 22309 0 22:39 pts/26 00:00:00 vim text.txt
zhyingj+ 23560 23112 0 22:39 pts/27 00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn vim
? ~ kill -9 23556
? ~ kill -9 23556
kill: kill 23556 failed: no such process
5.殺死指定用戶所有進程
命令:
kill -9 $(ps -ef | grep peidalinux)
kill -u peidalinux