Linux 中的进程管理
### 1.進(jìn)程定義 ###
#進(jìn)程的定義:
程序是靜態(tài)的代碼文件
進(jìn)程是指程序運行時的形態(tài)
進(jìn)程是程序的一個副本
進(jìn)程是有生命周期的(準(zhǔn)備期,運行期,終止期)
#進(jìn)程&線程
進(jìn)程是資源調(diào)用的最小單位
線程是進(jìn)程的最小單位
程序執(zhí)行流是從上倒下貫穿運行的
當(dāng)進(jìn)程是多任務(wù)物,cpu是多核心,多任務(wù)應(yīng)該同時被每個核心處理,每個核心處理的任務(wù)叫線程
線程資源是共享的.
#進(jìn)程狀態(tài)
#R(TAKS_RUNNING)?? ?##可執(zhí)行態(tài)(running,ready)
#S(TASK_INTRRUPTABLE)?? ?##可喚醒休眠
#D(TASK_UNINTRRUPTABLE)?? ?##不可喚醒休眠
#T(TASK_STOP)?? ??? ?##暫停狀態(tài)
#Z(EXIT_ZOMBIE)?? ??? ?##僵死態(tài)
### 2.進(jìn)程查看命令 ###
gnome-system-monitor?? ??? ?##圖形進(jìn)程查看工具
ps?? ??? ??? ??? ?#進(jìn)程查看
?? ??? ??? ??? ?#ps 命令的三種執(zhí)行風(fēng)格 unix bsd GNU
?? ??? ??? ??? ?#a 與終端相關(guān)的進(jìn)程(當(dāng)用戶登陸系統(tǒng)后產(chǎn)生的進(jìn)程都是帶終端的)
?? ??? ??? ??? ?#x 與終端無關(guān)相關(guān)的進(jìn)程
?? ??? ??? ??? ?#u 用戶信息歸類的查看方式
?? ??? ??? ??? ?#f 進(jìn)程層級關(guān)系
?? ??? ??? ??? ?#o 顯示指定參數(shù) pid comm nice pri pcpu ppid stat,user,group
?? ??? ??? ??? ?#
?? ??? ??? ??? ?#-e 顯示所有進(jìn)程
?? ??? ??? ??? ?#-f 顯示信息的完整格式
?? ??? ??? ??? ?#-H 顯示進(jìn)程的層級結(jié)構(gòu)
?? ??? ??? ??? ?#-o 顯示指定參數(shù)
?? ??? ??? ??? ?#--sort=
?? ??? ??? ??? ?#
?? ??? ??? ??? ?#ps ax顯示信息如下:
?? ??? ??? ??? ?#PID?? ?進(jìn)程id
?? ??? ??? ??? ?#TTY?? ?進(jìn)程用到的終端
?? ??? ??? ??? ?#STAT?? ?進(jìn)程狀態(tài)
?? ??? ??? ??? ?#TIME?? ?進(jìn)程占用cpu時長
?? ??? ??? ??? ?#COMMAND 進(jìn)程名稱
?? ??? ??? ??? ?
?? ??? ??? ??? ?#ps aux顯示信息如下:
?? ??? ??? ??? ?#USER?? ?進(jìn)程所有人
?? ??? ??? ??? ?#PID?? ?進(jìn)程id
?? ??? ??? ??? ?#%CPU?? ?進(jìn)程使用cpu的用量
?? ??? ??? ??? ?#%MEM?? ?進(jìn)程所用到的內(nèi)存用量
?? ??? ??? ??? ?#VSZ?? ?進(jìn)程使用的虛擬內(nèi)存大小
?? ??? ??? ??? ?#RSS?? ?進(jìn)程常駐內(nèi)存中的數(shù)據(jù)大小
?? ??? ??? ??? ?#TTY?? ?進(jìn)程用到的終端
?? ??? ??? ??? ?#STAT?? ?進(jìn)程狀態(tài)
?? ??? ??? ??? ?#START?? ?進(jìn)程運行時長
?? ??? ??? ??? ?#TIME?? ?進(jìn)程占用cpu時長
?? ??? ??? ??? ?#COMMAND?? ?進(jìn)程名稱
?
?
pgrep?? ??? ??? ??? ?#進(jìn)程過濾
?? ??? ??? ??? ?#-u uid?? ??? ?顯示指定用戶進(jìn)程
?? ??? ??? ??? ?#-U user?? ?顯示指定用戶進(jìn)程
?? ??? ??? ??? ?#-t tty?? ??? ?顯示指定終端進(jìn)程
?? ??? ??? ??? ?#-l?? ??? ?顯示進(jìn)程名稱
?? ??? ??? ??? ?#-a?? ??? ?顯示進(jìn)程的完整名稱
?? ??? ??? ??? ?#-P?? ??? ?下時進(jìn)程的子進(jìn)程
?
pidof?? ?vim?? ??? ??? ?##查看vim的pid
top?? ??? ??? ??? ?##動態(tài)進(jìn)程查看
?? ??? ??? ??? ?##top中的內(nèi)容顯示信息
?? ??? ??? ??? ?#09:48:51 ?? ?系統(tǒng)時間
?? ??? ??? ??? ?#up 18:54?? ?運行時長
?? ??? ??? ??? ?#2 users?? ?系統(tǒng)中有兩個用戶登陸
?? ??? ??? ??? ?#load average: 0.75, 0.53, 0.41
?? ??? ??? ??? ??? ??? ?1min 5min? 15min
?? ??? ??? ??? ?#Tasks:
?? ??? ??? ??? ?#331 total 任務(wù)總量
?? ??? ??? ??? ?#3 running?? ?正在運行
?? ??? ??? ??? ?#329 sleeping?? ?休眠人物數(shù)量
?? ??? ??? ??? ?#0 stopped?? ?被暫停數(shù)量
?? ??? ??? ??? ?#0 zombie?? ?僵死人物數(shù)量
?? ??? ??? ??? ?#
?? ??? ??? ??? ?#%Cpu(s)
?? ??? ??? ??? ?#1.5 us?? ??? ?用戶空間
?? ??? ??? ??? ?#1.9 sy?? ??? ?內(nèi)核空間
?? ??? ??? ??? ?#0.0 ni?? ??? ?nice值調(diào)整時間
?? ??? ??? ??? ?#58.9 id?? ?空閑時間
?? ??? ??? ??? ?#0.0 wa?? ??? ?等待io時間
?? ??? ??? ??? ?#2.1 hi?? ??? ?處理硬件中斷時間
?? ??? ??? ??? ?#0.2 si?? ??? ?處理軟件中斷時間
?? ??? ??? ??? ?#0.0 st?? ??? ?被偷走的時間(vm使用時間)
?? ??? ??? ??? ?#
?? ??? ??? ??? ?#MiB Mem :
?? ??? ??? ??? ?#7664.6 total,?? ?總量
?? ??? ??? ??? ?#5383.9 free?? ?空閑
?? ??? ??? ??? ?#1312.1 used?? ?占用
?? ??? ??? ??? ?#968.8 buff/cache?? ?緩存
?? ??? ??? ??? ?#
?? ??? ??? ??? ?#MiB Swap:?? ?交換分區(qū)用量
?? ??? ??? ??? ?#
?? ??? ??? ??? ?#top命令的參數(shù)
?? ??? ??? ??? ?#-d?? ?指定刷新頻率
?? ??? ??? ??? ?#-b?? ?以批次方式顯示
?? ??? ??? ??? ?#-n?? ?指定顯示的批次數(shù)量
?? ??? ??? ??? ?#
?? ??? ??? ??? ?#top內(nèi)部指令
?? ??? ??? ??? ?#P?? ?cpu排序
?? ??? ??? ??? ?#M?? ?內(nèi)存排序
?? ??? ??? ??? ?#T?? ?累計展銅cpu時間排序
?? ??? ??? ??? ?#l?? ?關(guān)閉/開啟uptime信息
?? ??? ??? ??? ?#t?? ?關(guān)閉/開啟cpu&task
?? ??? ??? ??? ?#s?? ?指定刷新頻率
?? ??? ??? ??? ?#k?? ?操作進(jìn)程
?? ??? ??? ??? ?#u?? ?查看指定用戶進(jìn)程
### 3.進(jìn)程優(yōu)先級 ###
系統(tǒng)時多任務(wù)多用戶的操作模式
任務(wù)的重要性是有區(qū)分的
如何確定任務(wù)的重要性
“優(yōu)先級”
范圍: 0--139
內(nèi)核自控優(yōu)先級范圍:0-99
用戶可控優(yōu)先級:100-139
nice
-20-19
renice -n -5 43331?? ?##更改優(yōu)先級
nice -n -5 vim &?? ?##指定優(yōu)先級打開進(jìn)程
S?? ?#sleeping
<?? ?#優(yōu)先級高
s?? ?#頂級進(jìn)程
T?? ?#stop
N?? ?#優(yōu)先級底
R?? ?#running
+?? ?#運行在前臺
### 4.進(jìn)程前后臺調(diào)用 ###
<ctrl>+<z>?? ?##把占用shell的進(jìn)程打入后臺掛起
bg?? ??? ?##把后臺掛起的進(jìn)程運行起來
fg?? ??? ?##把后臺進(jìn)程調(diào)回前臺
&?? ??? ?##運行進(jìn)程在后臺
jobs?? ??? ?##查看當(dāng)前shell中在后臺的所有工作
### 5.進(jìn)程信息號 ###
#進(jìn)程信號
1?? ?#重新家在系統(tǒng)配置文件(source)
2?? ?#清空內(nèi)存中的進(jìn)程數(shù)據(jù)
3?? ?#清空內(nèi)存中的鼠標(biāo)(ctrl+\)
9?? ?#強行結(jié)束進(jìn)程(不能被阻塞)
15?? ?#正常關(guān)閉進(jìn)程(會被阻塞)
18?? ?#運行被暫停的進(jìn)程
19?? ?#暫停進(jìn)程(不會被阻塞)
20?? ?#暫停進(jìn)程(會被阻塞的)
#進(jìn)程信號控制工具
kill?? ?進(jìn)程信號?? ?pid
killall 進(jìn)程信號?? ?進(jìn)程名字
pkill?? ?進(jìn)程信號?? ?進(jìn)程條件
?
### 6.systemd守護進(jìn)程 ###
##實驗環(huán)境
#linux.westos.com?? -------- > 172.25.254.10
#node1.westos.com ----------> 172.25.254.20
#
#遠(yuǎn)程操作主機
#ssh 遠(yuǎn)程主機ip -l 遠(yuǎn)程主機用戶
#守護進(jìn)程
#替內(nèi)核分擔(dān)程序控管的程序
#通常pid為1
#systemd -----> systemctl
#systemctl 管理系統(tǒng)服務(wù)
#服務(wù)指在系統(tǒng)中開啟的共享系統(tǒng)資源到網(wǎng)絡(luò)中的程序
#cs??? client ------?? server
#
#systemctl命令的用法
?? ?start?? ??? ??? ?##開啟
?? ?stop?? ??? ??? ?##關(guān)閉
?? ?status?? ??? ??? ?##查看狀態(tài)
?? ?reload?? ??? ??? ?##重新加載
?? ?restart?? ??? ??? ?##重新啟動服務(wù)
?? ?enable?? ??? ??? ?##設(shè)定服務(wù)開機啟動
?? ?enable --now?? ??? ?##設(shè)定服務(wù)開機啟動并當(dāng)前開啟服務(wù)
?? ?disable?? ??? ??? ?##設(shè)定服務(wù)開啟不其動
?? ?list-units?? ??? ?##查看系統(tǒng)所有服務(wù)當(dāng)前狀態(tài)
?? ?list-unit-files?? ??? ?##查看服務(wù)開機狀態(tài)
?? ?list-dependencies?? ?##列出服務(wù)依賴性
?? ?mask?? ??? ??? ?##凍結(jié)服務(wù)
?? ?unmask?? ??? ??? ?##解鎖
?? ?set-default?? ??? ?##設(shè)定系統(tǒng)運行模式
?? ??? ??? ??? ?#multi-user.target?? 無圖形網(wǎng)絡(luò)模式
?? ??? ??? ??? ?#graphical.target??? 有圖形的網(wǎng)絡(luò)模式
?? ?get-default?? ??? ?##查看系統(tǒng)運行模式
?? ??? ??? ??? ?##系統(tǒng)運行模式
?? ??? ??? ??? ?#0-6
?? ??? ??? ??? ?#0?? ?POWEROFF
?? ??? ??? ??? ?#1?? ?single
?? ??? ??? ??? ?#2?? ?noG+NETWORK
?? ??? ??? ??? ?#3
?? ??? ??? ??? ?#4
?? ??? ??? ??? ?#5?? ?G+NETWORK
?? ??? ??? ??? ?#6?? ?REBOOT
?
### 7.系統(tǒng)中的登陸審計 ###
w?? ??? ?##顯示正在登陸系統(tǒng)的賬號
?? ??? ?## -i?? ?顯示登陸來源
?? ??? ?#/var/run/utmp
last?? ??? ?##登陸成功現(xiàn)在已經(jīng)退出的
?? ??? ?##/var/log/wtmp
lastb?? ??? ?##試圖登陸但未成功
?? ??? ?##/var/log/btmp
總結(jié)
以上是生活随笔為你收集整理的Linux 中的进程管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 系统中的权限管理
- 下一篇: Linux 中的远程登陆