什麼是程序?簡單的說,程序就是系統中一個程式執行後產生的,程序是一個動態的概念,可以看成是程式執行時產生的一個例項。下面介紹幾個與程序相關的命令。
ps [選項]
選項:
-a:顯示所有終端執行的程序
a:顯示與終端相關的所有程序,包含程序的完整路徑
-u:顯示指定使用者的相關程序資訊
u:顯示程序的使用者資訊
-e:顯示所有程序
-f:顯示UID、PPID、C 等資訊
f:顯示程序樹
-l:詳細的格式顯示程序資訊
-o:自定義顯示欄位,逗號分隔
x:顯示與終端無關的所有程序
# ps 不加引數預設輸出的是當前視窗的程序[root@my-os ~]# ps```PID : 程序號TTY:程序所屬終端TIME: 程序使用的CPU時間CMD:正在執行的命令```
# -ef 是常用的選項組合,可以配合grep命令過濾查詢[root@my-os data]# ps -ef ```UID : 程序的所屬者PID : 程序號PPID :程序的父程序號C : CPU使用的資源百分比STIME : 程序開始時間TTY :程序的所屬終端,"?"表示與終端無關的程序,tty1-tty6表示本機上的使用者程序,pts/0表示遠端連線進主機執行的程序TIME :程序使用的CPU時間CMD :正在執行的命令```
# 顯示所有包含其他使用者的行程[root@my-os ~]# ps -aux```USER:程序所屬使用者PID: 程序號%CPU:程序所使用的CPU百分比%MEM:程序佔用的物理記憶體百分比VSZ:程序使用的虛擬記憶體量RSS:程序佔用的固定記憶體量TTY :程序的所屬終端 STAT:程序目前的狀態 R :正在運作,或者是可被運作 S :正在睡眠當中 ,可被某些訊號 (signal) 喚醒。 D:不可中斷睡眠 T :正在偵測或者是停止了 Z :已經終止,但是其父程序無法正常的終止他,造成 zombie (疆屍) 程式的狀態 +:前臺程序 N:低優先順序程序 l : 多執行緒程序 <:高優先順序程序 L:已將將頁面鎖定到記憶體中 s:程序領導START :程序啟動時間TIME:程序實際使用的CPU時間COMMAND:正在執行的命令```
# 顯示程序樹[root@my-os data]# ps -eH[root@my-os data]# ps -axf
# 指定使用者顯示相關程序[root@my-os ~]# ps -fu study
pgrep 命令查詢匹配條件的程序號
語法:
ps [選項] [匹配條件]
選項:
-u:顯示指定使用者的程序號
[root@my-os ~]# pgrep -u study
kill 命令終止程序
語法:
kill [選項] [程序號]
選項:
-l:列出全部的訊號名稱
-s:指定要傳送的訊號
[root@my-os ~]# kill -l```常用訊號:HUP(1) : 掛起INT(2):中斷,可以使用crtl+c 傳送訊號QUIT(3): 退出,可以使用ctrl+\ 傳送訊號KILL(9): 立即結束程序TERM(15) :終止TSTP(20):暫停經常的執行, 可以使用ctrl+z 傳送訊號 ```
[root@my-os ~]# ps -ef |grep stu.shstudy 7003 5171 0 21:09 pts/1 00:00:00 /bin/bash ./stu.shstudy 7016 5171 0 21:12 pts/1 00:00:00 /bin/bash ./stu.shroot 7047 1819 0 21:12 pts/0 00:00:00 grep --color=auto stu.sh# 結束程序[root@my-os ~]# kill 7003# 強制結束程序[root@my-os ~]# kill -9 7003```殺程序,一般都會找到對應程序pid,kill 預設使用的訊號是15,終止程序。如果有時候無法終止程序,就需要用KILL(9)訊號強制結束程序。加-9有時候會帶來副作用,比如程序對應的程式還在寫入資料,由於強制結束導致資料丟失。```
pkill 命令可以透過程序名終止指定的程序及其所有子程序語法:
pkill [選項] [程序名]
選項:
-t :殺死指定的終端的程序
-u:殺手指定使用者的程序
# 檢視nginx程序[root@my-os ~]# ps -ef |grep nginx |grep -v grep# 殺死該程序[root@my-os ~]# pkill nginx
[root@my-os ~]# ps -fu study# 殺死指定使用者程序[root@my-os ~]# pkill -u study
最新評論