Linux基礎-13day-Linux系統軟件管理

Linux系統軟件管理

1Linux進程管理

在計算機中,數據的存儲位置一般有兩種:硬盤和內存。數據存儲在硬盤中交文件,存儲在內存中叫進程。對硬盤中數據進行操作時,我們要知道文件名稱,對內存中數據進行操作時,需要知道進程號。

硬盤中文件與內存中進程之間的關係:在執行或處理硬盤中數據時,系統需要加載到內存中執行,文件的數據被加載到內存後,就變成了進程。

2、進程查看

2.1 ps命令

描述:查看系統所有進程(靜態顯示)。

用法:ps  [參數]

主要參數:

名稱

說明

a

顯示當前終端下所有進程信息

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用戶的所有進程

個人公衆號:

image.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章