系統進程
一.什麼是進程
進程 : 一個正在運行中的程序
程序被觸發後,執行者的權限與屬性,程序的程序碼與所需數據等都會被載入內存中,操作系統會給予這個內存內的單元一個識別碼 (PID)。
二.查看進程
1.圖形方式查看
命令:`gnome-system-monitor`
2.進程查看命令
命令:`ps`
ps -A/-e 顯示所有(包括不同終端不同用戶)進程(PID,TTY,TIME,CMD)
ps -a 當前環境中運行的進程,不包含環境信息(PID,TTY,TIME,CMD)
ps -u (username) 顯示當前(username)用戶進程信息(USER,PID,CPU,MEM,VSZ,RSS,TTY,STAT,START,TIME,COMMAND)
ps a 顯示當前終端環境中(包括不同用戶)運行的進程
ps x 列出系統中所有運行包含tty輸出設備
ps f 顯示進程的父子關係
ps e 顯示進程中的詳細信息(列出程序所使用的環境變量)
常用組合
ps -aux 顯示系統中所有進程並顯示進程用戶
ps -ef 顯示進程詳細信息並顯示父子進程關係
ps -ax 顯示系統中所有進程
ps -o 顯示進程的指定信息
ps -o comm 進程名稱
ps -o user 進程所有人
ps -o group 進程所有組
ps -o %cpu 進程cpu使用率
ps -o %mem 進程內存使用率
ps -o pid 進程id
ps -o nice 進程優先級
PID :進程編號
TTY :命令所執行的終端(tty1-tty6是本機登入者,pts/0等是網絡連接主機的程序)
STAT :進程狀態
TIME :運行程序佔用cpu的時間
COMMAND/CMD :改程序的實際指令
%CPU :進程佔用CPU百分比
%MEM :進程佔用內存百分比
VSZ :虛擬內存集,進程佔用的虛擬內存空間
RSS :物理內存集,進程佔用的實際物理內存空間
shell查看進程
進程排序
ps --sort= +%cpu 正序顯示cpu佔用率排序進程結果
ps --sort= -%mem 逆序顯示內存佔用率排序進程結果
按照CPU佔用率順序顯示前10行
三.進程的狀態與優先級
STAT 顯示狀態:
R 正在運行
S 可喚醒的睡眠狀態
D 不可喚醒的睡眠進程
T 停止狀態
Z 殭屍進程
l 內存中有鎖定空間
N 優先級低
< 優先級高
+ 前臺進程
s 頂級進程
NI 顯示優先級:
1.優先級範圍
-20——19(-20最高,19最低)
2.優先級查看
ps ax -o pid,nice,comm
3.改變進程優先級
renice -n 5 pid 將進程id爲pid的進程優先級變爲5
renice -n -5 6574 將進程id爲6574的進程優先級變爲-5
運行vim並監控pid和優先級,初始優先級爲0,pid爲15813
利用renice -n 5 15813修改vim優先級爲5
4.指定某個優先級開啓進程
nice -n 優先級數字 進程名稱
nice -n -5 vim & 後臺開啓vim並且指定優先級爲-5
四.環境中進程的前後臺調用
jobs 查看被打入後臺的進程
ctrl+z 把佔用終端的進程打入後臺
fg jobsnum 把後臺進程調回前臺
bg jobsnum 繼續運行後臺暫停的進程
comm & 讓命令直接在後臺運行
打開vim和gedit並放置後臺,利用jobs查詢
命令後加&直接在後臺打開vim
五.進程信號
1.常用進程信號等級
1 進程重新加載配置
2 刪除進程在內存中的數據
3 刪除鼠標在內存中的數據
9 強行結束目標進程(不可被阻塞)
15 正常關閉進程(可能會被阻塞)
18 運行暫停的進程
19 暫停某個進程(不可被阻塞)
20 把進程打入後臺(可以被阻塞)
2.利用信號等級管理進程
man 7 signal 查看信號詳細信息
kill -信號等級 pid 對進程編號爲pid的進程進行管理
killall -信號等級 comm 對所有名稱爲comm進程管理
pkill -信號等級 -u -student 根據特定條件控制進程
打開vim並後臺
強制結束進程vim
六.動態監控進程top
命令:`top`
進入top界面後輸入
【s】:修改進程刷新間隔時間
【m】:根據內存佔有率進行排序
【c】:根據cpu佔有率進行排序
【u】:後面輸入用戶名,用來查看該用戶
【k】:後面跟要管理的進程pid,和發起的信號(eg:9,15,20)
【q】:退出進程查看界面
【h】:顯示top命令的幫助界面
輸入s修改刷新時間
輸入c根據cpu佔有率排序