6.Linux中的进程管理
1.進(jìn)程
進(jìn)程的定義
? ? 程序是靜態(tài)的代碼文件;進(jìn)程是指程序運(yùn)行時的形態(tài)
? ? 進(jìn)程是程序的一個副本(copy程序到內(nèi)存,相當(dāng)于副本)
? ? 進(jìn)程是有生命周期的
? ? ? ? 準(zhǔn)備期:準(zhǔn)備資源(類似于執(zhí)行“打掃教室任務(wù)”前,“拿掃把”)
? ? ? ? 運(yùn)行期:執(zhí)行過程
? ? ? ? 終止期:執(zhí)行后程序所占用的系統(tǒng)資源被回收
進(jìn)程和線程
? ? ? ? 進(jìn)程:進(jìn)程是資源調(diào)用的最小單位。所有事件由cpu處理,當(dāng)一個事件cpu,其他事件就無法占用處于,等待用完才可以使用cpu。
? ? ? ? 雙核、三核cpu:為使充分使用cpu,一個事件細(xì)劃分成若干個小的線程,加速cpu同時處理。
? ? ? ? 線程是進(jìn)程的最小單位
????????程序執(zhí)行流是從上到下貫穿運(yùn)行的
????????當(dāng)進(jìn)程是多任務(wù),cpu是多核心時,多任務(wù)應(yīng)該同時被每個核心處理,每個核心處理的任務(wù)叫線程資源。 線程資源是共享的
進(jìn)程狀態(tài)
R(TASK_RUNNING)
????????##可執(zhí)行態(tài):正在被cpu處理,或已經(jīng)加載好等待被cpu處理
S(TASK_INTRRUPTABLE)
????????##可喚醒休眠:使用cpu超時,進(jìn)入休眠,再次使用時需要被激活
D(TASK_UNINTRRUPTABLE)
????????##不可喚醒休眠:使用cpu超時,仍有資源沒有被加載好,不可以使用cpu
T(TASK_STOP)
????????##暫停狀態(tài):關(guān)閉無法使用程序,但可以人為喚醒
Z(EXIT_ZOMBLE)
? ? ? ? ##僵死態(tài):進(jìn)程已經(jīng)結(jié)束,卻占用資源不放,需要手動結(jié)束程序。“bug”
2.進(jìn)程查看命令?
gnome-system-monitor ????????##圖形進(jìn)程查看工具 ps 進(jìn)程查看 ????????ps 命令的三種執(zhí)行風(fēng)格 unix bsd GNU ps a ????????與終端相關(guān)的進(jìn)程(當(dāng)用戶登陸系統(tǒng)后產(chǎn)生的進(jìn)程都是帶終端的) ps x???????? 與終端無關(guān)相關(guān)的進(jìn)程 ps u ????????用戶信息歸類的查看方式?ps?f? ? ? ? ? 進(jìn)程層級關(guān)系
ps o ????????顯示指定參數(shù) ?pid comm nice pri pcpu ppid stat,user,group
ps
ps -e ????????顯示所有進(jìn)程
ps -f???????? 顯示信息的完整格式
ps -H????????顯示進(jìn)程的層級結(jié)構(gòu)
ps?-o ????????顯示指定參數(shù)
ps?--sort=? ? #排序
正序,從小到大,例:ps axo %cpu --sort=%cpu
倒序,從大到小,例:ps axo %cpu --sort=-%cpu
?
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)先級(普通用戶只能把自己的優(yōu)先級改低) nice -n -5 cat ##指定優(yōu)先級打開進(jìn)程 ps ax -o pid,nice,comm | grep cat ? ps ---- > pri --- 39-0 nice? ?-20?-?19 priority 0-139 (100-139) S???????? #sleeping < ????????#優(yōu)先級高 s???????? #頂級進(jìn)程 T???????? #stop N???????? #優(yōu)先級底 R????????#running + ????????#運(yùn)行在前臺4.進(jìn)程前后臺調(diào)用
<ctrl>+<z> ????????##把占用shell的進(jìn)程打入后臺掛起 bg? ? ? ? ? ? ? ? ? ? ? ##把后臺掛起的進(jìn)程運(yùn)行起來 fg? ? ? ? ? ? ? ? ? ? ? ?##把后臺進(jìn)程調(diào)回前臺 & ? ? ? ? ? ? ? ? ? ? ??##運(yùn)行進(jìn)程在后臺 jobs????????????????? ##查看當(dāng)前shell中在后臺的所有工作5.進(jìn)程信息號?
man 7 signal #進(jìn)程信號 1 ????????#重新家在系統(tǒng)配置文件(source) 2 ????????#清空內(nèi)存中的進(jìn)程數(shù)據(jù) 3 ????????#清空內(nèi)存中的鼠標(biāo)(ctrl+\) 9 ????????#強(qiáng)行結(jié)束進(jìn)程(不能被阻塞) 15???????? #正常關(guān)閉進(jìn)程(會被阻塞) 18 ????????#運(yùn)行被暫停的進(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守護(hù)進(jìn)程
? ##實(shí)驗(yàn)環(huán)境
#linux.westos.com -------- > 172.25.254.10 #node1.westos.com ----------> 172.25.254.20 查找ip #遠(yuǎn)程操作主機(jī) #ssh 遠(yuǎn)程主機(jī)ip -l 遠(yuǎn)程主機(jī)用戶 ?ssh -l root 172.25.254.20 #守護(hù)進(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ù)開機(jī)啟動 enable --now? ? ? ? ? ? ? ? ? ?##設(shè)定服務(wù)開機(jī)啟動,并當(dāng)前開啟服務(wù) disable? ? ? ? ? ? ? ? ? ? ? ? ? ? ##設(shè)定服務(wù)開啟不其動 list-units? ? ? ? ? ? ? ? ? ? ? ? ? ##查看系統(tǒng)所有服務(wù)當(dāng)前狀態(tài) list-unit-files? ? ? ? ? ? ? ? ? ? ##查看服務(wù)開機(jī)狀態(tài) list-dependencies? ? ? ? ? ?##列出服務(wù)依賴性 mask? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ##凍結(jié)服務(wù) unmask? ? ? ? ? ? ? ? ? ? ? ? ? ##解鎖 set-default? ? ? ? ? ? ? ? ? ? ? ##設(shè)定系統(tǒng)運(yùn)行模式 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #multi-user.target 無圖形網(wǎng)絡(luò)模式 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #graphical.target 有圖形的網(wǎng)絡(luò)模式 get-default? ? ? ? ? ? ? ? ? ? ?##查看系統(tǒng)運(yùn)行模式
?
? ##系統(tǒng)運(yùn)行模式 ? #0-6 init 0 ????????POWEROFF init 1 ????????single init 2 ????????noG+NETWORK(開機(jī)2,3,4都無圖形) init 3 init 4 init 5 ????????G+NETWORK 開機(jī)有圖形 init 6 ????????REBOOT 重啟
?7.系統(tǒng)中的登陸審計(jì)?
w ##顯示正在登陸系統(tǒng)的賬號 ## -i 顯示登陸來源?
#/var/run/utmp last ##登陸成功現(xiàn)在已經(jīng)退出的 ##/var/log/wtmp lastb ##試圖登陸但未成功 ##/var/log/btmp?
總結(jié)
以上是生活随笔為你收集整理的6.Linux中的进程管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单元测试自动生成测试用例
- 下一篇: linux 其他常用命令