1. 程式人生 > >Linux 有關管理進程的命令小結

Linux 有關管理進程的命令小結

能夠 sigstop gts tst 殺死進程 點運算 有效 host 小結

1.kill

NAME

kill - terminate a process (終止進程)

SYNOPSIS

kill [-signal] pid

說明:

kill 給指定進程發送指定信號. 如果沒有指定信號, 則發送 TERM 信號. TERM
信號會殺死不能俘獲該信號的進程. 對於其他進程, 可能需要使用 KILL (9) 信號,
因為該信號不能夠被俘獲.

有效信號列表:

信號 動作 說明
SIGHUP 1 A 在控制終端上是掛起信號, 或者控制進程結束
SIGINT 2 A 從鍵盤輸入的中斷
SIGQUIT 3 C 從鍵盤輸入的退出
SIGILL 4 C 無效硬件指令
SIGABRT 6 C 非正常終止, 可能來自 abort(3)
SIGFPE 8 C 浮點運算例外
SIGKILL 9 AEF 殺死進程信號
SIGSEGV 11 C 無效的內存引用
SIGPIPE 13 A 管道中止: 寫入無人讀取的管道
SIGALRM 14 A 來自 alarm(2) 的超時信號
SIGTERM 15 A 終止信號
SIGUSR1 30,10,16 A 用戶定義的信號 1
SIGUSR2 31,12,17 A 用戶定義的信號 2
SIGCHLD 20,17,18 B 子進程結束或停止
SIGCONT 19,18,25 繼續停止的進程
SIGSTOP 17,19,23 DEF 停止進程
SIGTSTP 18,20,24 D 終端上發出的停止信號
SIGTTIN 21,21,26 D 後臺進程試圖從控制終端(tty)輸入
SIGTTOU 22,22,27 D 後臺進程試圖在控制終端(tty)輸出

其中,動作欄的字母含義:

   A      缺省動作是結束進程.

   B      缺省動作是忽略這個信號.

   C      缺省動作是結束進程, 並且核心轉儲.

   D      缺省動作是停止進程.

   E      信號不能被捕獲.

   F      信號不能被忽略.   

註意:

這裏 "結束" 指進程終止並釋放資源, "停止" 指 進程停止運行, 但是資源沒有釋放, 有可能繼續運行.

順便小結下有關管理進程的命令

ps

NAME

ps - report a snapshot of the current processes.(用於報告當前系統的進程狀態)

SYNOPSIS

ps [選項]

比較常用的選項:

-a:顯示有終端機下執行的程序,除了階段作業。

-A:顯示所有程序。

-e:效果與指定"-A"選項相同

e:列出程序時,顯示每個程序所使用的環境變量

f:用ASCII字符顯示樹狀結構,表達程序間的相互關系。

u:以用戶為主的格式顯示程序狀況

x:顯示所有程序,不以終端機來區分

實戰:

1.顯示所有當前進程

ps -ax|less

2.根據用戶過濾進程

ps -u <用戶名或者ID>

3.通過cpu和內存使用來過濾進程

ps -aux|less

根據 CPU 使用來升序排序

ps -aux --sort -pcpu | less

根據 內存使用 來升序排序

ps -aux --sort -pmem | less

4.通過進程名和PID過濾

ps -f -C sshd

5.樹形顯示進程

ps -axjf

pstree

有關進程的5種狀態

R(運行):進程正在運行或在隊列中等待。

S(中斷):進程處於休眠中,當某個條件形成或者接收到信號時,則脫離該狀態。

D(不可中斷):進程不響應系統異步信號,即便使用kill命令也不能將其中斷。

Z(僵死):進程已經終止,但進程的描述符依然存在。

T(停止):進程收到停止信號後停止運行。

pidof命令:

查詢某個指定服務進程的PID值

[root@localhost ~]# pidof sshd

2118 1488

killall命令:

用於終止某個指定名稱的服務所對應的全部進程。

比如:

killall httpd

Linux 有關管理進程的命令小結