Linux系統軟件管理linux
1、Linux進程管理
在計算機中,數據的存儲位置通常有兩種:硬盤和內存。數據存儲在硬盤中交文件,存儲在內存中叫進程。對硬盤中數據進行操做時,咱們要知道文件名稱,對內存中數據進行操做時,須要知道進程號。nginx
硬盤中文件與內存中進程之間的關係:在執行或處理硬盤中數據時,系統須要加載到內存中執行,文件的數據被加載到內存後,就變成了進程。緩存
2、進程查看
2.1 ps命令
描述:查看系統全部進程(靜態顯示)。安全
用法:ps [參數]bash
主要參數:網絡
名稱多線程 |
說明ssh |
aide |
顯示當前終端下全部進程信息spa |
u |
使用以用戶爲主的格式輸出進程信息 |
x |
顯示當前用戶全部終端下進程信息 |
-e |
顯示全部進程信息,環境變量 |
-f |
使用完整格式顯示進程信息 |
-r |
顯示正在運行的進程 |
-l |
長格式顯示 |
au |
顯示較詳細信息 |
aux |
顯示包含其餘使用者的詳細的進程信息 |
最經常使用:ps -ef / pe aux
(1)ps -ef
[root@test ~]# ps -ef
顯示信息說明:
UID |
PID |
PPID |
C |
STIME |
TTY |
TIME |
CMD |
用戶ID |
進程ID |
父進程ID |
進程佔用CPU百分比 |
進程啓動時間 |
進程在哪一個終端上運行。 |
該進程實際使用CPU運行的時間 |
命令名稱及參數 |
TTY值:若與終端無關,則顯示? 若爲pts/0等,則表示由網絡鏈接主機進程。
(2)ps aux
[root@test ~]# ps aux
顯示信息說明:
USER |
PID |
%CPU |
%MEM |
VSZ |
RSS |
TTY |
STAT |
COMMAND |
用戶名 |
進程ID |
CPU佔用率 |
內存佔用率 |
虛擬資源使用率 |
物理資源使用率 |
進程在哪一個終端運行(窗口號) |
狀態 |
命令名稱及參數 |
說明:linux系統進程狀態:STAT狀態位常見的狀態字符
名稱 |
說明 |
R |
Running,運行進程,隨時調運CPU、內存資源 |
S |
自睡眠進程,觸發前處於待機狀態(減小資源佔用) |
D |
強制睡眠進程,兩進程同時運行,內核限制其中一個處於中止狀態 |
Z |
殭屍進程,進程終止時,向父進程提交返回值,釋放資源,提交與釋放之間的特殊狀態 |
T |
中止進程 |
< |
高優先級的進程 |
N |
較低優先級的進程 |
L |
有些頁被鎖進內存 |
s |
進程的領導者(在它之下有子進程) |
l |
多線程,克隆線程(使用 CLONE_THREAD,) |
+ |
位於後臺的進程 |
2.2 top命令
描述:查看系統全部進程(動態顯示)。
用法:top [參數]
主要參數:
名稱 |
說明 |
-d |
指定每兩次屏幕信息刷新時間間隔 |
-p |
經過監控進程ID來監控某個進程狀態 |
-q |
該選項使top無延遲進行刷新 |
-S |
指定累計模式 |
-s |
使top在安全模式下運行 |
-i |
使top不顯示任何閒置或殭屍進程 |
-c |
顯示整個命令行而不是隻顯示命令名稱 |
Top命令結果說明:
(1)top
第一行:任務隊列信息,同uptime結果相同
17:14:14當前時間;up 12 days, 18:01:系統運行時間;
2 user:當前登陸用戶數;load average: 0.00, 0.00, 0.00:系統負載信息
第二行:進程相關信息
total:進程總數 running:正常運行進程數;sleeping:睡眠狀態進程數; stopped:中止的進程數 zombie:殭屍進程數
第三行:CPU使用狀況
us:用戶空間佔用CPU百分比; sy:內核空間佔用CPU百分比;
ni:改變過優先級的進程佔CPU百分比; id:空閒CPU百分比;
wa:IO等待佔用CPU百分比; hi:硬中斷佔用CPU百分比;
si:軟中斷佔用CPU百分比; st:虛擬機佔用百分比。
第四行:內存狀況
Total:物理內存總量; used:使用的物理內存總量
free:空閒內存總量; buffers:用做內核緩存的內存量
第五行:swap內存狀況
total:交換分區總量; used:使用的交換分區總量
free:空閒交換分區總量;
cached:緩衝的交換分區總量,內存中的內容被換出到交換分區,而後又被換入到內存,但使用過的交換分區還沒有被覆蓋,該數值即爲這些內容已存在於內存中的交換區的大小,相應的內存再次被換出時可沒必要再對交換分區進行寫入。
各進程的詳細信息,各字段含義:
字段 |
含義 |
PID |
進程id |
USER |
進程全部者 |
PR |
優先級 |
NI |
Nice值,負值優先級最高,正值表示低優先級 |
VIRT |
進程使用的虛擬內存總量 |
RES |
進程使用的、未被換出的物理內存大小 |
SHR |
共享內存大小 |
S |
進程狀態(D=不可中斷的睡眠狀態,R=運行,S=睡眠,T=跟蹤/中止,Z=殭屍進程) |
%CPU |
CPU佔有率 |
%MEM |
沒存佔有率 |
TIME+ |
進程佔用CPU時間 |
COMMAND |
命令名/命令行 |
進程優先級:
系統對進程進行調動時,系統內核給每一個進程一些計數器,內核選擇擁有計數器最多的進程優先執行。Linux系統進程優先級範圍-20~19,數值越小,優先級越高。(top命令執行後,執行r,輸入進程id號,回車,在輸入優先級號,回車,可修改進程優先級。)
nice -n -19 top #以-19的優先級執行top命令。
renice -n -19 -p 8888 #修改進程號8888的優先級爲-19.
top其餘經常使用操做:
(1)top #顯式全部進程狀況 (2)top -d 10 #每隔10秒顯式全部進程狀況 (3)top -c #顯示進程的命令行詳細信息(默認只有進程名) (4)top -p 8888 -p 9999 #顯示pid是8888和9999兩個進程信息 (5)top -d 2 -c -p 8888 #每隔2秒顯示pid是8888的進程狀況,並顯式該
3 進程查詢
3.1 pgrep命令
描述:經過匹配其程序名,找到匹配的進程。
用法:pgrep [參數選項] 程序名
主要參數:
必要參數 |
做用 |
-l |
同時顯示進程名和pid |
-o |
當匹配多個進程時,顯示進程號最小的那個 |
-n |
當匹配多個進程時,顯示進程號最大的那個 |
注:進程號越大,並不必定意味着進程的啓動時間越晚。
(1)查看ssh進程
[root@test ~]# pgrep -l ssh
4 進程先後臺調度相關命令
(1)ctrl+z 將當前進程調入後臺並中止執行
(2)jbos 查看後臺任務列表
(3)fg n 將後臺進程置於前臺執行,n爲jbos序號
(4)bg n 將後臺暫停的進程恢復到後臺執行,n爲jbos序號
5 結束進程相關命令
(1)ctrl+c 結束當前進程;
(2)kill命令
kill 進程pid #結束指定進程 kill -9 進程pid #強制結束指定進程 kill -9 $(ps -ef |grep 用戶名) #強制結束指定用戶進程 kill -u 用戶名 #強制結束指定用戶進 kill -l 顯示kill全部信號選項 只有第9種信號(SIGKILL)才能夠無條件終止進程,其餘信號進程都有權利忽略。下面是經常使用的信號: HUP 1終端斷線;INT 2 中斷(同 Ctrl + C); QUIT 3 退出(同 Ctrl + \);TERM 15 終止; KILL 9 強制終止;CONT 18 繼續(與STOP相反, fg/bg命令) STOP 19 暫停(同 Ctrl + Z)
(3)killall命令
killall命令用於殺死指定名字的進程 killall 程序名 #殺死指定名稱的全部進程 killall nginx #殺死全部nginx進程 killall -9 ssh #殺死全部ssh進程
(4)pkill命令
pkill 和killall 應用方法差很少,也是直接殺死運行中的程式;若是你想殺掉單個進程,請用kill 來殺掉。
pkill -t tty1 #殺死終端1下的全部進程 pkill -kill -t pts/2 #踢用戶 pkill -9 888 #完全殺死進程888 pkill -u test #殺死指定用戶test的全部進程 pkill -vu root #殺死不屬於root用戶的全部進程
我的公衆號: