Linux進(jìn)程管理

sleep : 休眠指定的時間
ctrl + z :可以將一個正在前臺執(zhí)行的命令放到后臺,并且暫停
fg :將后臺中的命令調(diào)至前臺繼續(xù)運(yùn)行,(Foreground)
bg :將進(jìn)程搬到后臺運(yùn)行(Background)或?qū)⒑笈_暫停的命令變成繼續(xù)執(zhí)行
jobs :查看當(dāng)前有多少在后臺運(yùn)行的命令
& :這個用在一個命令的最后,可以把這個命令放到后臺執(zhí)行(通常配合nohup使用)
nohup :不掛斷地運(yùn)行命令
top :動態(tài)顯示所有的進(jìn)程
ps :列出當(dāng)前所有正在運(yùn)行的進(jìn)程
kill :終止進(jìn)程
ctrl + c :結(jié)束命令的執(zhí)行

sleep : 暫停指定的時間

我現(xiàn)在是讓休眠30秒念恍,可以看到命令執(zhí)行后并沒有把客戶端的shell提示符返還給我,說明正在休眠


image.png

image.png

ctrl + z :將一個正在前臺執(zhí)行的命令放到后臺,并且暫停
通過bg %jobnumber 即可將暫停的job的狀態(tài)由stopped改為running翠订,仍在后臺執(zhí)行;當(dāng)需要改為在前臺執(zhí)行時遵倦,執(zhí)行命令fg %jobnumber 即可尽超。

可以看到sleep 30這個命令暫停執(zhí)行,并且返回一個后臺的進(jìn)程號

image.png

fg :將后臺中的命令調(diào)至前臺繼續(xù)運(yùn)行梧躺,(Foreground)
如果后臺中有多個命令似谁,可以用 fg %jobnumber將選中的命令調(diào)出傲绣,%jobnumber是通過jobs命令查到的后臺正在執(zhí)行的命令的序號(不是pid號)
bg :將作業(yè)放到后臺運(yùn)行,使前臺可以執(zhí)行其他任務(wù)巩踏,且可將后臺暫停的命令變成繼續(xù)執(zhí)行 (注意:實(shí)際上秃诵,使用bg命令與在指令后面添加符號"&"的效果是一樣的)

sleep 60
# 按ctrl z 鍵,暫停命令
sleep 60
# 按ctrl z 鍵塞琼,暫停命令
sleep 120
# 按ctrl z 鍵菠净,暫停命令
jobs 
# 查看后臺進(jìn)程,可以看到后臺當(dāng)前有三個命令暫停
fg %1 
#把后臺暫停的1號工作調(diào)到前臺彪杉,但因?yàn)?0秒時間已經(jīng)到了毅往,所以說這個把這個命令調(diào)到前臺后直接就返回了shell 提示符
fg %2
#把后臺暫停的2號工作調(diào)到前臺,繼續(xù)執(zhí)行休眠命令派近,所以說不返回shell提示符攀唯,只能暫停或結(jié)束sleep命令才能返回shell提示符
fg %3
#同理
jobs
#查看當(dāng)前后臺進(jìn)程构哺,只剩兩個革答,但是進(jìn)程號不會改變(這個號碼不是動態(tài)的,是唯一的對應(yīng)于一個進(jìn)程)
image.png

提交后臺進(jìn)程

方法一(最常用)

nohup Command(要執(zhí)行的命令) & :提交后臺進(jìn)程
& :這個用在一個命令的最后曙强,可以把這個命令放到后臺執(zhí)行残拐,但一般的普通程序即使使用 & 結(jié)尾,把任務(wù)放到了后臺碟嘴,shell提示符返還給你溪食,你能繼續(xù)輸入命令來進(jìn)行別的工作,但如果此時你有事需要離開娜扇,要關(guān)閉你的客戶端错沃,那么后臺運(yùn)行的任務(wù)也會被關(guān)閉。為了能夠后臺運(yùn)行雀瓢,我們需要使用nohup這個命令枢析,在命令前加上nohup,即便客戶端關(guān)閉刃麸,你提交的任務(wù)也可以繼續(xù)在后臺運(yùn)行醒叁,所以一般這兩個命令連用來提交后臺任務(wù)柏腻。

如果使用nohup命令提交作業(yè)椅挣,那么命令的執(zhí)行情況的所有輸出都被重定向到一個名為nohup.out的文件中,除非另外指定了輸出文件秩伞,無論是否將 nohup 命令的輸出重定向到終端吁伺,輸出都將附加到當(dāng)前目錄的 nohup.out 文件中饮睬。如果當(dāng)前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out 文件中篮奄。如果沒有文件能創(chuàng)建或打開以用于追加捆愁,那么 Command 參數(shù)指定的命令不可調(diào)用割去。

image.png

提交后臺成功,會返回一個PID號牙瓢,ps可以查看進(jìn)程劫拗。圖中由于我的文件小,運(yùn)行時間太短矾克,查看進(jìn)程時已經(jīng)結(jié)束页慷。(命令顯示位“Done”)
換個大點(diǎn)的文件,運(yùn)行時間長的胁附,我們再來看下:

nohup fastq-dump --gzip --split-3 -O ~/text/tmp ~/text/SRR1039508.sra &

image.png

提交成功會出現(xiàn)一個PID號酒繁,可以看到這個PID號跟topps查看進(jìn)程時顯示的一致控妻,PID號和進(jìn)程是一一對應(yīng)的州袒,kill+PID 號就能終止這個后臺進(jìn)程
image.png

image.png
方法二

如果一個要長時間運(yùn)行的命令,我們忘記提交后臺運(yùn)行了弓候,而此時又需要做其他的事(當(dāng)然你可以再開一個窗郎哭,但這里講的是你在同一個窗口下該怎么做)
此時你可以ctrl+z然后再執(zhí)行bg命令,把任務(wù)搬到后臺菇存。(注意:因?yàn)闆]有nohup,此時不能關(guān)閉客戶端)

bin=fastq-dump
dir=/home/yjzhang/scRNA-seq
ls /home/yjzhang/scRNA-seq/sra/SRR6791478 |while read id ;do $bin --gzip --split-3 -O $dir/raw $id ;done
ctrl +z
jobs
ps -ef |grep yjzhang
bg %1
jobs
ps -ef |grep yjzhang
exit
ps -ef |grep yjzhang

image.png

image.png

exit中斷服務(wù)器連接與直接關(guān)閉客戶端中斷與服務(wù)器的連接不一樣夸研,第二種方法提交到后臺的任務(wù),exit退出與服務(wù)器連接的時候依鸥,提交的任務(wù)仍能在后臺運(yùn)行亥至,而直接關(guān)閉客戶端退出,這時候bg提交的任務(wù)很大可能會終止(應(yīng)為這個bg就相等于在命令后面加了& )贱迟,但有時候也不終止(同樣的命令用git登陸服務(wù)器執(zhí)行時會終止姐扮,用xshell登陸時執(zhí)行,退出后就不終止)衣吠,為了保險起見茶敏,推薦使用第一種方法
image.png

kill :發(fā)送信號給一個或多個進(jìn)程(經(jīng)常用來殺死一個進(jìn)程)
kill +PID號 #殺死單個進(jìn)程
ps -ef | grep yjzhang|awk '{print 2}' |while read id; do killid; done #批量殺死所有用戶名為 yjzhang 提交的進(jìn)程

image.png

查看線程
top 統(tǒng)計(jì)信息前五行是系統(tǒng)整體的統(tǒng)計(jì)信息

top查看線程默認(rèn)顯示是Tasks(任務(wù),進(jìn)程)缚俏,加-H參數(shù)才顯示的是線程(Threads)

image.png

top - 21:25:38 up 2 days, 2 user, load average: 0.08, 0.03, 0.00

1睡榆、第一行是任務(wù)隊(duì)列信息 同uptime質(zhì)性命令結(jié)果一樣。
21:25:38 up 2 days 2 user load average: 0.08, 0.03, 0.00
當(dāng)前時間 up:系統(tǒng)運(yùn)行時間 當(dāng)前登陸的用戶數(shù) 系統(tǒng)負(fù)載袍榆,即任務(wù)隊(duì)列的平均長度,三個數(shù)值分別表示距離現(xiàn)在1分鐘塘揣,5分鐘包雀,15分鐘的負(fù)載情況
21時25分28秒 2天 當(dāng)前2個用戶登陸 1分鐘前負(fù)載為0.08;5分鐘前負(fù)載為0.03亲铡;15分鐘前負(fù)載為0.00

注:load average數(shù)據(jù)是每隔5秒鐘檢查一次活躍的進(jìn)程數(shù)才写,然后按特定算法計(jì)算出的數(shù)值葡兑。如果這個數(shù)除以邏輯CPU的數(shù)量,結(jié)果高于5的時候就表明系統(tǒng)在超負(fù)荷運(yùn)轉(zhuǎn)了赞草。

Tasks: 178 total, 1 running, 177 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.2 us, 0.1 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

2讹堤、第二行、三行為進(jìn)程和 CPU 的信息厨疙。當(dāng)有多個 CPU 時洲守,內(nèi)容可能超過兩行。
Tasks 178 total 1 running 177 sleeping 0 stopped 0 zombie
進(jìn)程(任務(wù)) 進(jìn)程總數(shù) 正在運(yùn)行的進(jìn)程數(shù) 休眠(掛起)的進(jìn)程數(shù) 停止的進(jìn)程數(shù) 僵尸進(jìn)程數(shù)
%Cpu(s) 1.2 us 0.1 sy 0.0 ni 99.7 id 0.0 wa 0.0 hi 0.0 si 0.0 st
CPU 占用率 (user) 用戶空間占用cpu的百分比 內(nèi)核空間占用cpu的百分比 niced 改變過優(yōu)先級的進(jìn)程占用cpu的百分比 空閑 CPU 百分比 IO wait IO等待占用cpu的百分比 Hardware IRQ 硬中斷占用cpu的百分比 software 軟中斷占用cpu的百分比 Steal Time

注: CPU%是由每個核的 CPU 占用率之和算出來的沾凄。如果你是 4 核 CPU梗醇,核 1,CPU 使用率為100%撒蟀,核 2叙谨,CPU 使用率為100%,則會CPU 高于100%的現(xiàn)象保屯,最終為200%手负。

- H參數(shù)后第二行顯示為Threads
Threads 232 total :目前線程總數(shù)232

image.png

KiB Mem : 16300688 total, 422428 free, 291988 used, 15586272 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 15599052 avail Mem

3.第四、五行為內(nèi)存使用信息
Mem 16300688 total 422428 free 291988 used 15586272 buff/cache
物理內(nèi)存 物理內(nèi)存總量 空閑物理內(nèi)存 使用的物理內(nèi)存總量 內(nèi)核緩存內(nèi)存量
物理總內(nèi)存16300688k(約16G) 422428k(約0.4G)空閑 291988k(約0.27G)在使用 15586272k用于緩存
Swap 0 total 0 free 0 used 15599052 avail Mem
交換分區(qū) 交換分區(qū)總量 可用交換空間 使用中的交換空間總量 緩沖的交換區(qū)總量

注:交換分區(qū)(Swap)被頻繁使用姑尺,可以看作物理內(nèi)存不足而造成的

具體進(jìn)程信息

第六行
PID USER PR NI VIRT RES
進(jìn)程id 進(jìn)程所有者 進(jìn)程優(yōu)先級 nice值竟终。負(fù)值表示高優(yōu)先級,正值表示低優(yōu)先級 進(jìn)程使用的虛擬內(nèi)存總量股缸,單位kb衡楞。VIRT=SWAP+RES 進(jìn)程使用的、未被換出的物理內(nèi)存大小敦姻,單位kb瘾境。RES=CODE+DATA
SHR S %CPU %MEM TIME+ COMMAND
共享內(nèi)存大小,單位kb 進(jìn)程狀態(tài)镰惦。D=不可中斷的睡眠狀態(tài) R=運(yùn)行 S=睡眠 T=跟蹤/停止 Z=僵尸進(jìn)程 上次更新到現(xiàn)在的CPU時間占用百分比 進(jìn)程使用的物理內(nèi)存百分比 進(jìn)程使用的CPU時間總計(jì)迷守,單位1/100秒 進(jìn)程名稱(命令名/命令行)

查看一個進(jìn)程所調(diào)用的線程
進(jìn)程概念:
  進(jìn)程是表示資源分配的基本單位,又是調(diào)度運(yùn)行的基本單位旺入。例如兑凿,用戶運(yùn)行自己的程序,系統(tǒng)就創(chuàng)建一個進(jìn)程茵瘾,并為它分配資源礼华,包括各種表格、內(nèi)存空間拗秘、磁盤空間圣絮、I/O設(shè)備等。然后雕旨,把該進(jìn)程放人進(jìn)程的就緒隊(duì)列扮匠。進(jìn)程調(diào)度程序選中它捧请,為它分配CPU以及其它有關(guān)資源,該進(jìn)程才真正運(yùn)行棒搜。所以疹蛉,進(jìn)程是系統(tǒng)中的并發(fā)執(zhí)行的單位。
線程概念:
  線程是進(jìn)程中執(zhí)行運(yùn)算的最小單位力麸,亦即執(zhí)行處理機(jī)調(diào)度的基本單位可款。如果把進(jìn)程理解為在邏輯上操作系統(tǒng)所完成的任務(wù),那么線程表示完成該任務(wù)的許多可能的子任務(wù)之一末盔。

image.png

可以看到我的一個任務(wù)調(diào)用了8個線程


image.png

這個調(diào)用了6個線程

服務(wù)器配置的查詢

lscpu≈恕#查詢CPU詳細(xì)信息
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l #查訊物理CPU個數(shù)
cat /proc/cpuinfo| grep "cpu cores"| uniq #查訊每個物理CPU中core的個數(shù)(即核數(shù))
cat /proc/cpuinfo| grep "processor"| wc -l≡刹铡#查訊邏輯CPU的個數(shù)(線程)
image.png

CPU(s):邏輯上(模擬出的)CPU個數(shù)
Thread(s) per core :每個核心的線程數(shù) (查詢結(jié)果顯示我的是每個核心一個線程)
Core(s) per socket :每個物理CPU上的核心數(shù)
Model name :CPU型號
說明我用這個服務(wù)器是1個CPU翠拣,8個物理核心8個線程(即8核單線程)

補(bǔ)充:
CPU個數(shù)即CPU芯片個數(shù)。
CPU的核心數(shù)是指物理上游盲,也就是硬件上存在著幾個核心误墓。比如,雙核就是包括2個相對獨(dú)立的CPU核心單元組益缎,四核就包含4個相對獨(dú)立的CPU核心單元組谜慌。
線程數(shù)是一種邏輯的概念,簡單地說莺奔,就是模擬出的CPU核心數(shù)欣范。比如,可以通過一個CPU核心數(shù)模擬出2線程的CPU令哟,也就是說恼琼,這個單核心的CPU被模擬成了一個類似雙核心CPU的功能。(注:CPU的線程和進(jìn)程中的線程概念不一樣屏富,CPU線程是模擬出來的核心數(shù)晴竞,進(jìn)程中的線程是要完成一個任務(wù)所調(diào)用的子任務(wù)數(shù))

綜上來說,在提交一個任務(wù)的時候我們要查看一下CPU的使用情況和設(shè)置適當(dāng)?shù)木€程數(shù)狠半,不要超過限度


學(xué)生信噩死,友情推薦:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市神年,隨后出現(xiàn)的幾起案子已维,更是在濱河造成了極大的恐慌,老刑警劉巖已日,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件垛耳,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)艾扮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來占婉,“玉大人泡嘴,你說我怎么就攤上這事∧婕茫” “怎么了酌予?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長奖慌。 經(jīng)常有香客問我抛虫,道長,這世上最難降的妖魔是什么简僧? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任建椰,我火速辦了婚禮,結(jié)果婚禮上岛马,老公的妹妹穿的比我還像新娘棉姐。我一直安慰自己,他們只是感情好啦逆,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布伞矩。 她就那樣靜靜地躺著,像睡著了一般夏志。 火紅的嫁衣襯著肌膚如雪乃坤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天沟蔑,我揣著相機(jī)與錄音湿诊,去河邊找鬼。 笑死溉贿,一個胖子當(dāng)著我的面吹牛枫吧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宇色,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼九杂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了宣蠕?” 一聲冷哼從身側(cè)響起例隆,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎抢蚀,沒想到半個月后镀层,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年唱逢,在試婚紗的時候發(fā)現(xiàn)自己被綠了吴侦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡坞古,死狀恐怖备韧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情痪枫,我是刑警寧澤织堂,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站奶陈,受9級特大地震影響易阳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吃粒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一潦俺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧声搁,春花似錦黑竞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至檐涝,卻和暖如春遏匆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背谁榜。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工幅聘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人窃植。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓帝蒿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親巷怜。 傳聞我的和親對象是個殘疾皇子葛超,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容