基於LINUX下的進程管理問題

什麼是進程?

程序(program)放置在存儲媒體中(如硬盤,光盤,軟盤,磁帶等)爲實體文件的形態存在
進程:程序被觸發後,執行者的權限與屬性,程序的程序碼與所需數據等都會被載入內存中,操做系統並給予這個內存內的單元一個識別碼(PID),能夠說,進程就是一個正在運行的程序
shell

進程的狀態:
R(Running):該程序正在運行中;
S(Sleep):該程序目前正在睡眠狀態(idle),但能夠被喚醒(signal)
D:不可被喚醒的睡眠狀態,一般進程可能在等待I/O的狀況。
T:中止狀態(stop),多是在工做控制(背景暫停)或除錯(traced)狀態;
Z(Zombie):殭屍狀態,程序已經終止但卻沒法被移除至內存外
vim

1.進程的查看命令
ps -A ##全部進程
ps -a ##在當前用戶環境運行的程序,不包含環境信息
ps -u ##顯示進程用戶信息
ps a ##在當前環境中運行的進程
ps x ##列出系統中全部運行包含tty輸出設備
ps f ##顯示進程的所屬關係(父子關係)
ps e ##顯示進程的詳細信息(系統資源的調用)
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述bash

ps經常使用組合
ps aux ##顯示系統中的全部進程
ps ef ##顯示進程詳細信息並顯示父子進程
ps ax ##顯示當前系統的全部進程
pstree ##顯示當前進程的進程樹
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
顯示進程的指定信息
ps -o xxx ##顯示進程的指定信息
comm ##進程名稱
user ##進程全部人
group ##進程全部組
%cpu ##進程cpu使用率
%mem ##進程內存使用率
pid ##進程pid
nice ##進程優先級
在這裏插入圖片描述
2.進程排序
ps ax --sort=
+%cpu|-%cpu
+%mem|-%mnm

在這裏插入圖片描述
stat中顯示的信息
S ##進程狀態
l ##內存中有鎖定空間
N ##優先級低
< ##優先級高
+ ##前臺運行
s ##頂級進程
在這裏插入圖片描述網絡

3.進程優先級
1.進程的優先級範圍-20~19
在這裏插入圖片描述
在這裏插入圖片描述
2.優先級的查看
ps ax -o pid,nice,comm
在這裏插入圖片描述
3.指定優先級
nice -n 優先級數字 進程名稱
在這裏插入圖片描述
修改優先級
renice -n 數字 進程的id
在這裏插入圖片描述
環境中進程的先後臺調用
jobs ##查看被打入環境後臺的進程
ctrl+z ##把佔用終端的進程打入後臺
fg jobsnum ##把後臺進程調回前臺
bg jobsnum ##把後臺暫停的進程運行
comm & ##讓命令直接在後臺運行
在這裏插入圖片描述
4.進程信號
經常使用信號等級
1 ##進程從新加載配置
2 ##刪除進程在內存中的數據
3 ##刪除鼠標在內存中的數據
9 ##強行結束單個進程(不可被阻塞)
15 ##正常關閉進程(可能被阻塞)
18 ##運行暫停的進程
19 ##暫停某個進程(不可被阻塞)
20 ##把進程打入後臺(能夠被阻塞)
man 7 signal ##查看信號的詳細信息
在這裏插入圖片描述
kill -信號 進程的pid
在這裏插入圖片描述
在這裏插入圖片描述
注意,在這裏kill-15可能沒法結束掉比較重要的進程,如bashssh

killall -信號 進程的名字
在這裏插入圖片描述
pkill -u student -信號
切換到普通用戶關閉vim同時關閉student的shell
在這裏插入圖片描述操作系統

5.進程的動態監控
top 經常使用的以下:
1. ##顯示cpu每一個核的負載
s ##調整刷新頻率
c ##cpu負載排序
m ##內存使用量排序
h ##查看幫助
u ##查看指定用戶進程
k ##對指定進程發起信號
q ##退出
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
6.控制服務
服務:cs模型:
c:client
s:server
定義:系統中運行的對於系統自己沒有意義,可是對客戶主機有重大意義的程序叫作服務性軟件,簡稱服務.net

reloda=kill -1,可是有些服務沒辦法reload,例如網絡服務3d

遠程控制命令:
systemctl   status  sshd    ##查看服務狀態,inactive(不可用)active(可用)
systemctl   start   sshd    ##開啓服務
systemctl   stop    sshd    ##關閉服務
systemctl   restart sshd    ##重起服務
systemctl   reload  sshd    ##從新加載服務配置(同kill -1相同)
systemctl   enable  sshd    ##設定服務開機啓動
systemctl   disable sshd    ##設定服務開機不啓動
systemctl   list-units  ##列出已經開啓服務當前當前狀態
systemctl   list-unit-files ##列出全部服務開機啓動的狀態 disable,enable,static
systemctl   list-dependencies   ##列出服務的依賴
systemctl   mask sshd       ##凍結服務
systemctl   unmask  sshd        ##解凍服務
systemctl   set-default multi-user,target   ##設定系統後啓動級別爲多用戶模式(無圖形)
systemctl   set-dafault graphical,target    ##設定系統啓動級別爲圖形模式

在這裏插入圖片描述
如圖,在這裏sshd服務時正在運行的
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述rest

來源:http://www.javashuo.com/article/p-zxklgiih-dy.htmlcode

相關文章
相關標籤/搜索