linux 第六章 linux中的进程管理
1.進程
進程的定義
??? 程序是靜態(tài)的代碼文件;進程是指程序運行時的形態(tài)
??? 進程是程序的一個副本(copy程序到內(nèi)存,相當于副本)
??? 進程是有生命周期的
??????? 準備期:準備資源(類似于執(zhí)行“打掃教室任務(wù)”前,“拿掃把”)
??????? 運行期:執(zhí)行過程
??????? 終止期:執(zhí)行后程序所占用的系統(tǒng)資源被回收
進程和線程
??????? 進程:進程是資源調(diào)用的最小單位。所有事件由cpu處理,當一個事件cpu,其他事件就無法占用處于,等待用完才可以使用cpu。
??????? 雙核、三核cpu:為使充分使用cpu,一個事件細劃分成若干個小的線程,加速cpu同時處理。
??????? 線程是進程的最小單位
程序執(zhí)行流是從上到下貫穿運行的
??? 當進程是多任務(wù),cpu是多核心時,多任務(wù)應(yīng)該同時被每個核心處理,每個核心處理的任務(wù)叫線程資源。 線程資源是共享的
進程狀態(tài)
??????? R(TASK_RUNNING) ##可執(zhí)行態(tài):正在被cpu處理,或已經(jīng)加載好等待被cpu處理
??????? S(TASK_INTRRUPTABLE) ##可喚醒休眠:使用cpu超時,進入休眠,再次使用時需要被激活
??????? D(TASK_UNINTRRUPTABLE) ##不可喚醒休眠:使用cpu超時,仍有資源沒有被加載好,不可以使用cpu
??????? T(TASK_STOP) ##暫停狀態(tài):關(guān)閉無法使用程序,但可以人為喚醒
??????? Z(EXIT_ZOMBLE) ##僵死態(tài):進程已經(jīng)結(jié)束,卻占用資源不放,需要手動結(jié)束程序。“bug”
2.進程查看命令(man ps)
gnome-system monitor??? gnome:圖形界面
#ps 命令的三種執(zhí)行風格 unix bsd GNU
bsd風格
ps a #與終端相關(guān)的,帶字符終端的進程(當用戶登陸系統(tǒng)后產(chǎn)生的進程都是帶終端)
ps x #與終端無關(guān)的,不帶字符終端的進程(除了某些有依賴關(guān)系的,其余都是?)?
?
ps u #用戶信息歸類的查看方式
ps f #進程層級關(guān)系
?
ps o #顯示指定參數(shù),如pid comm nice pri pcpu ppid stat,user,group?
?
unix風格
ps -e 顯示所有進程
?ps -f 顯示信息的完整格式
ps -H 顯示進程的層級結(jié)構(gòu)
?
ps -o 顯示指定參數(shù)?
?
ps --sort= (如cpu排序、內(nèi)存排序) - sort=為倒序
1.如:ps axo? pid,%cpu,%mem,state
?
?
2.排序
從小到大:
從大到小:?
?
pgrep
pgrep #進程過濾
??? pgrep -u ##uid 顯示指定用戶進程
??? pgrep -U ##user 顯示指定用戶進程
??? pgrep -t ##tty 顯示指定終端進程
??? pgrep -l ##顯示進程名稱
??? pgrep -a ##顯示進程的完整名稱
??? pgrep -P ##顯示進程的子進程
具體操作過程:
1.開啟3個shell,其中兩個用westos用戶登陸,另一個用root,westos窗口用ps命令查詢pid
?
進程優(yōu)先級
??? 系統(tǒng)是多任務(wù)多用戶的操作模式
??? 任務(wù)的重要性是有區(qū)分的
??? 如何確定任務(wù)的重要性——“優(yōu)先級” 范圍:0–139 (共140個優(yōu)先級)
??? 內(nèi)核自控優(yōu)先級范圍:0–99
??? 用戶可控優(yōu)先級:100–139
??? nice -20 ~ 19 其中-20最高,19最低
??? ##linux系統(tǒng)中nice值——優(yōu)先級的另一種說法:系統(tǒng)可控優(yōu)先級的值
??? ##普通用戶優(yōu)先級只能調(diào)低不能調(diào)高
更改優(yōu)先級:renice -n -5(期望優(yōu)先級) 11111(pid) ##更改優(yōu)先級
進程狀態(tài):
S #sleeping
< #優(yōu)先級高
s #頂級進程
T #stop
N #優(yōu)先級低
R #running ‘+’ #運行在前臺
4.進程前后臺調(diào)用
##查看進程狀態(tài) stat
Ctrl +Z ##把占用shell的進程打入后臺掛起
bg ##把后臺掛起的進程運行起來
fg ##把后臺進程調(diào)回前臺
& ##運行進程在后臺
jobs ##查看當前shell中在后臺的所有工作
5.進程信息號
進程信號
man 7 signal
1 ##重新讀取加載系統(tǒng)配置文件(source)
2 ##清空內(nèi)存中的進程數(shù)據(jù)
3 ##清空內(nèi)存中的鼠標(Ctrl +\)
9 ##強制結(jié)束進程(不能被阻塞)
15 ##正常關(guān)閉進程(會被阻塞),無法強制關(guān)閉子程序,關(guān)閉shell會被阻塞
18 ##被暫停的進程運行起來
19 ##暫停進程(不會被阻塞)
20 ##暫停進程(會被阻塞的)
6.進程信號控制工具
??? kill 進程信號 pid
??? killall 進程信號 進程名字
??? pkill 進程信號 進程條件
killall ##結(jié)束某一進程或命令
pkill ##指定結(jié)束某一用戶及所有進程
6.systemd守護進程
配置ip地址 nm-connection-editor
選擇ens3?? ipv4處選擇mannual? 子網(wǎng)掩碼24?? ip老規(guī)矩
真機:ssh -l root 172.25.254.112
systemctl命令
systemctl命令的用法
?????? start?????? ##開啟
?????? stop?????? ##關(guān)閉
??? status???? ##查看狀態(tài)
?eload??? ##重新加載
?????? restart??? ##重新啟動服務(wù)
? 注:reload和restart一樣的效果,因為ssd服務(wù)不支持reload,支持的話reload后id不變
? enable??? ##設(shè)定服務(wù)開機啟動
?????? enable? --now ##設(shè)定服務(wù)開機啟動并當前開啟服務(wù)(enable開機時啟動? now現(xiàn)在)
?????? disable? ##設(shè)定服務(wù)開啟不啟動
?????? list-units? ##查看系統(tǒng)所有服務(wù)當前狀態(tài)
?????? list-unit-files?? ##查看服務(wù)開機狀態(tài)
?????? list-dependencies? ##列出服務(wù)依賴性
?????? mask?? ##凍結(jié)服務(wù)
?????? umask? ##解鎖
?????? set-default ##設(shè)定系統(tǒng)運行模式
?????? ##multi-user.target? 無圖形網(wǎng)絡(luò)模式
?????? ##graphical.target?? 有圖形的網(wǎng)絡(luò)模式
??????? get-default? ##查看系統(tǒng)運行模式:直接runlevel
???????????????????? ##系統(tǒng)運行模式
???????????????????? #0-6
???????????????????? #0??? POWEROFF 關(guān)閉
???????????????????? #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 第六章 linux中的进程管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022.9.19-9.25 AI行业周
- 下一篇: Linux查看网卡驱动|更新驱动