[oeasy]python0033_任務(wù)管理_jobs_切換任務(wù)_進(jìn)程樹結(jié)構(gòu)_fg
查看進(jìn)程
回憶上次內(nèi)容
上次先進(jìn)程查詢
ps -elf
查看所有進(jìn)程信息ps -lf
查看本終端相關(guān)進(jìn)程信息殺死進(jìn)程
kill -9 PID
給進(jìn)程發(fā)送死亡信號運(yùn)行多個(gè)
python3 show_time.py
的話各個(gè)進(jìn)程獨(dú)立
python3 show_time.py
大概 8+M各占內(nèi)存
這些進(jìn)程之間是什么關(guān)系呢???

具體查詢
zsh進(jìn)程相關(guān)的 3 個(gè)進(jìn)程
查詢進(jìn)程的ps進(jìn)程
輸出時(shí)間的python程序
zsh(shell本身)進(jìn)程
zsh(當(dāng)前的 shell 環(huán)境)
/usr/bin/python3 /home/shiyanlou/sleep.py
ps -lf

這進(jìn)程之間有父子關(guān)系
父子關(guān)系
pid
是指進(jìn)程的id
process id
ppid
是指 父進(jìn)程 idparent process id
ppid
是pid
的爸爸

ps
和python3
都是zsh
的子進(jìn)程python3 這個(gè)進(jìn)程占內(nèi)存是 SZ
總共 10+M
4860 個(gè) Page
每個(gè) page 大概 4K

python3 這個(gè)文件不是本身才 4.3M 么
都裝進(jìn)內(nèi)存也就是 4.3M
都裝進(jìn)內(nèi)存頁沒有 10+M 呀?
10+M 的原因
除了基礎(chǔ)的部分(內(nèi)建模塊函數(shù))之外
print()
ord()、chr()
int()、hex()、bin()
還有新加載的部分
sleep.py
還有
import
進(jìn)來的time
這個(gè)module
實(shí)際分配
ps -o pid,ppid,sz,vsz,rss,cmd
SZ 是欲分配的內(nèi)存用頁(4K)來當(dāng)單位
VSZ 是欲分配的內(nèi)存用 K 來當(dāng)單位

RSS 非交換區(qū)的內(nèi)存用 K 來當(dāng)單位
也就是說實(shí)際這個(gè)東西也就 8+M

后臺(tái)多任務(wù)查詢jobs
還可以用jobs查看當(dāng)前的任務(wù)

jobs
可以看到后臺(tái)的任務(wù)我們可以切換任務(wù)到前臺(tái)嗎
將任務(wù)切換到前臺(tái)

fg 可以
將最后一個(gè)任務(wù)(3#job)
切換到前臺(tái)
可以切2#job嗎?
指定任務(wù)進(jìn)行切換
我們可以用 fg 加參數(shù)的方式
把指定編號的進(jìn)程恢復(fù)到前臺(tái)
注意前面的 1193、1527、1542 分別是他們的 pid

這就是前后臺(tái)切換
用ctrl+z把當(dāng)前進(jìn)程切換到后臺(tái)
用jobs查詢當(dāng)前shell的后臺(tái)任務(wù)
用ps可以查看進(jìn)程
用kill可以結(jié)束進(jìn)程
用ctrl+c結(jié)束當(dāng)前前臺(tái)的進(jìn)程
jobs這個(gè)詞怎么來的呢?
jobs
詞源字典
一堆(lump)
一口(mouthful)
凱爾特語(gob)、(gop)
原意就是口(the mouth)
中古英語就變成(jobbe)
再演變而成一件工作

work
是長時(shí)期穩(wěn)定的工作
全日制的工作
jobs
是臨時(shí)突發(fā)的工作
零工
偷竊也叫jobs
如果兩個(gè)jobs的話
占用內(nèi)存會(huì)變小嗎?
兩個(gè)進(jìn)程
我們開兩個(gè)
show_time.py
PID 分別是 422、514

然后觀察到
先運(yùn)行的進(jìn)程在非交換區(qū)的內(nèi)存占用略高
每個(gè) python進(jìn)程 實(shí)際分配差不多都是 9M(RSS)
相互之間是獨(dú)立的兄弟進(jìn)程
但是從邏輯上都屬于zsh的子進(jìn)程
如果開多個(gè)xfce 進(jìn)程情況又是如何呢?
再打開幾個(gè)xfce終端
進(jìn)程層次關(guān)系
ps -elf
拉到最后
找zsh和上級的xfce4

祖父是xfce4-terminal
家里也是三兄弟
家里三個(gè)兄弟
大伯是zsh(252)
二伯是zsh(405)
就像一棵樹
可以用樹的形式觀察嗎?
pstree
pstree -h 命令查看這棵樹

可以看到清晰地父子兄弟關(guān)系
總結(jié)
進(jìn)程前后臺(tái)切換
fg %1
可以把指定的進(jìn)程切回前臺(tái)ctrl+z把當(dāng)前進(jìn)程切換到后臺(tái)并暫停
jobs
查看所有作業(yè)用
fg
可以把進(jìn)程再切回前臺(tái)用
bg
可以讓進(jìn)程在后臺(tái)運(yùn)行進(jìn)程查詢
ps -elf
查看所有進(jìn)程信息ps -lf
查看本終端相關(guān)進(jìn)程信息kill -9 PID
給進(jìn)程發(fā)送死亡信號pstree -h
可以查看進(jìn)程樹運(yùn)行多個(gè)
python3 sleep.py
的話各個(gè)進(jìn)程獨(dú)立
python3 sleep.py
大概 7M各占內(nèi)存
這個(gè)切進(jìn)程很好用
不過運(yùn)行進(jìn)程的時(shí)候總是滿屏刷時(shí)間
可以固定在屏幕的某個(gè)位置刷新時(shí)間嗎???
我們下次再說!*
藍(lán)橋->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython
視頻->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy