日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux系统中进程的查看及控制

發布時間:2024/3/12 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux系统中进程的查看及控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.什么是進程
程序放置在儲存媒體中如硬盤,光盤,軟盤,磁帶等,為實體文件的形態存在
進程:程序被觸發后執行者的權限與屬性,程序的程序碼與所需數據等都會被載入內存中,操作系統并給予這個內存內的單元一個識別碼(pid),進程就是一個正在運行的程序
2.進程的狀態
R 正在運行
S 正在睡眠狀態,但可以被喚醒
D 不可被喚醒的睡眠狀態,通常進程可能在等待I/O的情況
T 停止狀態,可能是在工作控制(背景暫停)或除錯狀態
Z 僵尸狀態,程序已經終止但無法被移至內存外

3.查看進程
(1)圖形方式查看
gnome-system-monitor

打開后如下:

(2)進程查看命令
ps 查看當前環境的進程
-A 表示所有進程

x表示有字符設備的所有進程,即有輸出界面的進程

-a 當前環境中的進程,忽略環境本身

a 跟當前環境(shell)相關的所有的進程,包括背景,最全的

-u 顯示進程的歸屬,進程所有人

f 查看進程的從屬關系,有窗口的進程結束父進程子進程會自動結束

###pstree查看系統的進程樹
e 顯示進程消耗的資源

l 較長,較詳細的將該pid的信息列出

<1>常用組合
ps aux 顯示系統中所有進程并顯示進程用戶

ps ef 顯示進程詳細信息并顯示進程父子關系

ps ax 顯示當前系統中的所有進程

pstree 顯示當前系統的進程樹

<2>顯示進程指定信息
ps -o comm進程名稱

user進程所有人

group進程所有組

%cpu進程cpu使用率

%mem進程內存使用率

pid 進程id

nice 進程優先級(0 表示normal 普通,nice 優先級越負越高)

注:以上參數可以混合使用,使用多個參數時用,隔開

4.進程排序倒序
+正序,可以不加+,默認是正序
ps ax --sort=-%cpu cpu使用量倒序

(+)%cpu cpu使用量正序

-%mem 內存使用量倒序

( +)%mem 內存使用量正序

例:查看系統內存占用量前五的進程的pid

5.nice 優先級
優先級的范圍是-20~19
優先級越負越高
優先級的級別有以下幾種:

##0 表示normal 普通
<1>gedit & 表示后臺運行這個進程,否則會占用命令行
例: nice -n 5 gedit & 啟動時設置進程的優先級為5,再查看進程

<2>改變已經啟動的進程的優先級
renice -n 優先級數字 pid
例:先后臺打開一個進程,重新設定優先級,設定后系統會提示這個進程的原來的優先級和現在的優先級

6.ps ax -o comm,pid,stat 查看進程的狀態信息

S 進程狀態 (后面有以下參數)
l 進程狀態內存中有所定空間
N 優先級低
< 優先級高
‘+’ 前臺運行
s 頂級進程
R+ 表示正在運行
鎖定空間 還沒保存時不被回收的內存空間
在休眠狀態下內存是共享的

7.環境中進程的前后臺調用
& 讓進程開啟的時候被打入后臺
例:創建一個gedit進程并把它打入后臺,此時命令行是可以用的

crtl+z 將正在運行(正在占用終端)的進程打入后臺,操作后該進程暫停工作 bg 把后臺暫停的進程運行起來 ##bg 調用后進程的默認符號會改變 jobs 查看被打入后臺的進程 ##- 表示次默認 +表示默認## +優先級高于-,沒有符號表示沒有優先級 fg 把后臺進程調回前臺,直接再次運行

例:<1>創建兩個進程,并用jobs查看,后創建的進程默認級別較高

<2>bg調用進程,沒有指定的情況下默認調用前面是+的進程,這時默認級別不會發生改變

<3>bg 1 調用進程[1] ,這個進程的默認級別會發生改變,再次jobs查看發現兩個進程的默認級別發生改變

<4>再創建一個進程打入后臺,jobs查看新創建的進程默認級別最高,原來級別低的進程現在沒有了級別(之前的進程默認級別自動減一級)

<5>bg調用有默認級別的兩個進程時沒有級別的進程不會受影響,直到bg調用沒有級別的進程時三個進程的默認級別才會都發生改變

<6>bg 2調用之前沒有默認級別的進程,他的級別由沒有變成了+,jobs查看后其他兩個進程的級別在原基礎上減一級

<7>fg 會調用默認級別最高的進程直接運行,他后面也可以加數字指定其他后臺運行的進程

5.進程信號
信號是一個標識
kill -信號 pid
1 進程重新加載配置##在進程不被關閉的情況下更改配置,熱更新
kill -2 pid 刪除進程在內存中的數據(如 字符設備,鎖定空間)
例:先后臺運行一個進程gedit,執行ps ax |grep gedit 命令得到gedit進程的信息

打開另一個shell,執行kill -2 3672 刪除該進程的鎖定空間,并再次執行ps ax |grep gedit 命令查看他的信息

3 = crtl+\ 刪除鼠標在內存中的數據(刪除之后當前shell中的光標會消失,直到再次移動鼠標又會出現)
9 強行結束單個進程 (不能被阻塞)
15 正常結束進程 (可以被阻塞)
例:ps查看當前環境下的進程,kill -15 pid 結束當前shell,執行后該命令被阻塞

在另一個shell中執行kill -9 pid 執行后shell被關閉

執行后結果如下:

18 運行暫停的進程
19 不能被阻塞
20 可以被阻塞(第三方軟件不會被阻塞)

例:
<1>注:該實驗的gedit必須是在圖形界面中打開的

<2>查看gedit進程的pid

<3>在gedit中輸入內容

<4>執行 kill -20 4075 命令,執行后點擊gedit,還可以繼續編輯


<5>執行kill -19 pid命令,再次點擊是不可以編輯的


<6>執行kill -18 pid 命令繼續運行暫停的進程,剛剛暫停時的操作會顯示到文件中(lala是剛剛暫停后輸入的內容)

killall -信號 進程名 可以管理所有名為##的進程,方便管理
kill -信號 進程id 管理準確
pkill -u student -信號 對屬于student用戶的進程作相應的操作
pkill 按照一定的條件去操作
例:切換到student用戶下,創建一個vim進程,在另一個shell中查看跟student有關的進程

執行pkill -u username -信號命令,如圖執行后student創建的所有進程被結束,再次查看沒有跟student有關的進程

6.進程的動態監控
top
1 顯示cpu每個核的負載
s 調整刷新頻率
c cpu負載排序
m 內存使用量排序
h 查看幫助
u 查看指定用戶進程
k 對指定進程發起信號
q 退出
例:執行top命令,出現以下界面

在當前界面按s,改變刷新頻率

按1,顯示CPU每個核的負載


按h,查看幫助

按u 查看指定用戶的進程
<1>在另一個shell中切換到student用戶創建一個進程,在top下按u,輸入student


<2>執行后如下

總結

以上是生活随笔為你收集整理的Linux系统中进程的查看及控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。