day 21 進(jìn)程管理(管理進(jìn)程)

1据忘、管理進(jìn)程狀態(tài)

當(dāng)程序運行為進(jìn)程后鹦牛,如果希望停止進(jìn)程,此時可以使用linux的kill命令對進(jìn)程發(fā)送關(guān)閉信號勇吊,還有killall pkill命令

(1)使用kill-l列出系統(tǒng)所支持的信號

[root@yangdan ~]# kill -l
 1) SIGHUP   2) SIGINT   3) SIGQUIT  4) SIGILL      5) SIGTRAP
 6) SIGABRT  7) SIGBUS   8) SIGFPE   9) SIGKILL    10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM    15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD 18) SIGCONT 19) SIGSTOP    20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG  24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF 28) SIGWINCH    29) SIGIO      30) SIGPWR
31) SIGSYS  34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+1247) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-1352) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX    

數(shù)字 信號意義 信號翻譯
1 SIGHUP 通常用來重新加載配至文件
9 SIGKLL 強制殺死進(jìn)程
15 SIGTERM 終止進(jìn)程曼追,默認(rèn)kill使用該信號

(2)使用kill命令殺死指定PID的進(jìn)程

1、給vsdtpd 進(jìn)程發(fā)送信號1汉规,15
[root@yangdan ~]# yum install vsfpd -y
[root@yangdan ~]# systemctl start vsftpd
[root@yangdan ~]# ps aux |grep vsftpd
root       8117  0.0  0.1  53276   576 ?        Ss   16:39   0:0 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root       8119  0.0  0.2 112708   984 pts/0    S+   16:40   0:0 grep --color=auto vsftpd

2礼殊、發(fā)送重載信號,例如vsftpd 的配置文件發(fā)生改變针史,希望重新加載
[root@yangdan ~]# kill -1 8117
[root@yangdan ~]# ps aux |grep vsftpd
root       8117  0.0  0.1  53276   752 ?        Ss   16:39   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root       8122  0.0  0.2 112708   988 pts/0    R+   16:42   0:00 grep --color=auto vsftpd



3晶伦、發(fā)送停止信號,當(dāng)然vsftpd 服務(wù)有停止的腳本 systemctl stop vsftpd
[root@yangdan ~]# kill 8117
[root@yangdan ~]# ps aux |grep vsftpd
root       8125  0.0  0.2 112708   988 pts/0    R+   16:46   0:00 grep --color=auto vsftpd
[root@yangdan ~]# systemctl start vsftpd
[root@yangdan ~]# ps aux |grep vsftpd
root       8133  0.0  0.1  53276   576 ?        Ss   16:47   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root       8135  0.0  0.2 112708   988 pts/0    R+   16:47   0:00 grep --color=auto vsftpd

4啄枕、發(fā)送強制停止信號婚陪,當(dāng)無法停止服務(wù)時,可強制終止信號
[root@yangdan ~]# kill -9 8117

(3)linux系統(tǒng)中的killall pkill命令用于殺死指定名字的進(jìn)程频祝∶诓危可以使用kill命令殺死指定進(jìn)程PID的進(jìn)程脆淹,要找到需要殺死的進(jìn)程,然后使用ps命令配合grep來查找進(jìn)程沽一。

1盖溺、通過服務(wù)名稱殺掉進(jìn)程
[root@yangdan ~]# ps aux|grep nginx
root       8153  0.0  0.2 112708   988 pts/0    R+   17:01   0:00 grep --color=auto nginx
[root@yangdan ~]# systemctl start nginx
[root@yangdan ~]# pkill nginx
[root@yangdan ~]# killall nginx

2、使用pkill踢出從遠(yuǎn)程登錄到本機的用戶铣缠,終止pts/0上所有進(jìn)程烘嘱,并且bash也結(jié)束(用戶被強制退出)
[root@yangdan ~]# pkill -9 -t pts/0

2、管理后臺進(jìn)程

(1)什么是后臺進(jìn)程

通常進(jìn)程都會在終端前臺運行攘残,一旦關(guān)閉終端拙友,進(jìn)程也隨著結(jié)束,此時就希望進(jìn)程能在后臺運行歼郭,將在前臺的進(jìn)程放入后臺運行,可以及時關(guān)閉終端也不影響進(jìn)程的正常運行辐棒。

(2)為什么將進(jìn)程放入后臺運行

如:我們此前在國內(nèi)服務(wù)器傳輸大文件時病曾,由于網(wǎng)絡(luò)的問題需要傳輸很久,如果在傳輸?shù)倪^程中出現(xiàn)網(wǎng)絡(luò)抖動或不小心關(guān)閉終端則會導(dǎo)致傳輸失敗漾根,如果將傳輸進(jìn)程放入后臺泰涂,就不會出現(xiàn)這樣的問題。

(3)使用什么工具將進(jìn)程放入后臺

之前都選擇使用&符號經(jīng)進(jìn)程放入后臺辐怕,然后使用jobs逼蒙、bg、fg等飯方式臣氖瑁看進(jìn)程狀態(tài)是牢,這種方式不太好,最好使用screen
(1)jobs陕截、bg驳棱、fg的使用(不推薦)

[root@yangdan ~]# sleep 3000 & // 運行程序(時),讓其在后臺執(zhí)行
[root@yangdan ~]# sleep 4000  //^Z农曲,將前臺的程序掛起(暫停)到后臺
[2]+ stopoed sleep 400
[root@yangdan ~]# ps aux |grep sleep
[root@yangdan ~]# jobs //查看后臺作業(yè)
[1]- Running sleep 3000 &
[2]+ Stopped sleep 4000

[root@yangdan ~]# bg %2 //讓作業(yè)2放入后臺
[root@yangdan ~]# fg %1 //將作業(yè)1調(diào)回到前臺
[root@yangdan ~]# kill %1  //kill 1,終止 PID 為 1 的進(jìn)程

[root@yangdan ~]# (while :;do data; sleep 2; done) & //進(jìn)程在后臺運行社搅,但輸出依然在當(dāng)前終端
[root@yangdang ~]# (while :;do data; sleep 2; done) &>/dev/null &

(2)screen的使用(推薦使用,生產(chǎn)必用)

1乳规、安裝
[root@yangdan ~]# yum install screen -y

2形葬、開啟一個screen窗口,指定名稱
[root@yangdan ~]# screen -S wget_mysql

3暮的、在screen窗口執(zhí)行任務(wù)即可
4件甥、平滑的退出screen,但不會終止screen中的任務(wù)脓规。注意:如果使用exit 才真的關(guān)閉screen窗口,所以要使用ctrl+a+d 關(guān)閉會話
screen -S  表示指定開啟的名稱

5翩伪、查看當(dāng)前正在運行的zcreen有哪些
[root@yangdan ~]# screen -list  查看后臺運行的程序
There is a screen on:
        8217.wget_mysql (Attached)
1 Socket in /var/run/screen/S-root.

6、進(jìn)入正在運行的screen
[root@yangdan ~]# screen -r wget_mysql
There is a screen on:
        8217.wget_mysql (Attached)
There is no screen to be resumed matching wget_mysql.
[root@yangdan ~]# screen -r 8217
There is a screen on:
        8217.wget_mysql (Attached)
There is no screen to be resumed matching 8217.

3谈息、進(jìn)程的優(yōu)先級 [進(jìn)階]

(1)什么是優(yōu)先級

優(yōu)先級是指優(yōu)先享受資源缘屹,如:老人優(yōu)先、小孩優(yōu)先等

(2)為什么有系統(tǒng)優(yōu)先級

舉例:去游樂園玩摩天輪侠仇,游樂園正常情況下是不用排隊的轻姿,當(dāng)節(jié)假日來臨時大人、小孩就比正常情況下的人要多好多則會導(dǎo)致響應(yīng)很慢逻炊,假設(shè)我是游樂園的VIP(最高優(yōu)先者)互亮,無論有多少人在排隊,我是優(yōu)先去玩摩天輪的人余素,至于沒有花錢的人員(較低優(yōu)先級)則進(jìn)入等待狀態(tài)豹休。

(3)系統(tǒng)中如何給進(jìn)程配置優(yōu)先級

在啟動進(jìn)程時,為不同的進(jìn)程使用不同的調(diào)度策略
nice 值越高:表示優(yōu)先級越低桨吊,如+19威根,該進(jìn)程容易將CPU使用量讓給其他進(jìn)程
nice 值越低:表示優(yōu)先級越高,如-20视乐,該進(jìn)程更不傾向于讓出CPU
1)使用top或ps命令查看進(jìn)程的優(yōu)先級

1洛搀、使用top可以查看nice優(yōu)先級。 NI:實際nice級別佑淀,默認(rèn)0留美。 PR:顯示nice值,-20映射到0.+19映射到39
   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                          
   560 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 xfs-log/sdc2  
   783 root      20   0  225724   4252   2776 S  0.0  0.9   0:00.17 abrt-watch-log   

2伸刃、使用ps查看進(jìn)程優(yōu)先級
[root@yangdan ~]# ps axo command,nice |grep sshd |grep -v grep
/usr/sbin/sshd -D             0
sshd: root@pts/0              0

2)nice指定程序的優(yōu)先級谎砾。格式:nice -n 優(yōu)先級數(shù)字 進(jìn)程名稱

1、開啟vim并且指定程序優(yōu)先級為-5
[root@yangdan ~]# nice -n -5 vim &
[1] 8296

2奕枝、查看該進(jìn)程的優(yōu)先級情況
[root@yangdan ~]# ps axo pid,command,nice |grep 8296
  8296 vim                          -5

3)renice命令修改一個正在運行的進(jìn)程優(yōu)先級棺榔。格式:renice -n 優(yōu)先級數(shù)字 進(jìn)程pid

1、查看sshd進(jìn)程當(dāng)前的優(yōu)先級狀態(tài)
[root@yangdan ~]# ps axo pid,command,nice |grep sshd
  1444 /usr/sbin/sshd -D             0
  8180 sshd: root@pts/0              0

2隘道、調(diào)整sshd主進(jìn)程的優(yōu)先級
[root@yangdan ~]# renice -n -20 1444
1444 (process ID) old priority 0, new priority -20

3症歇、調(diào)整之后記得退出終端
[root@yangdan ~]# ps axo pid,command,nice |grep sshd
  1444 /usr/sbin/sshd -D           -20
  8180 sshd: root@pts/0              0
[root@yangdan ~]# exit

4、當(dāng)再次登錄sshd服務(wù)谭梗,會有主進(jìn)程fork子進(jìn)程(那么子進(jìn)程會繼承主進(jìn)程的優(yōu)先級)
[root@yangdan ~]# ps axo pid,command,nice |grep sshd
  1444 /usr/sbin/sshd -D           -20
  8180 sshd: root@pts/0            -20

4忘晤、系統(tǒng)平均負(fù)載 [進(jìn)階]

發(fā)現(xiàn)系統(tǒng)變慢時,第一件事就是執(zhí)行top或uptime命令激捏,了解系統(tǒng)的負(fù)載情況

[root@yangdan ~]# uptime
 19:02:01 up 10:44,  2 users,  load average: 0.00, 0.00, 0.03
#熟悉前面幾列设塔,分別為當(dāng)前時間、系統(tǒng)云行時間远舅、正在登錄用戶數(shù)闰蛔。

#最后三個數(shù)字痕钢,依次為過去 1 分鐘、5 分鐘序六、15 分鐘的平均負(fù)載(Load Average)

(1)什么是平均負(fù)載

平均負(fù)載不就是單位時間內(nèi)任连,系統(tǒng)處于可運行狀態(tài)和不可中斷狀態(tài)的平均進(jìn)程數(shù),也就是平均活躍進(jìn)程數(shù)例诀,平均負(fù)載與CPU使用率并沒有直接關(guān)系随抠。

(2)可運行狀態(tài)和不可中斷狀態(tài)

1)可運行狀態(tài)進(jìn)程,是指正在使用CPU或者正在等待CPU的進(jìn)程繁涂,也就是ps命令看到處于R狀態(tài)的進(jìn)程
2)不可中斷進(jìn)程拱她,系統(tǒng)中最常見的是等待硬件設(shè)備的I/O響應(yīng),也就是ps命令中看到的D狀態(tài)的進(jìn)程
當(dāng)一個進(jìn)程向磁盤讀寫數(shù)據(jù)時扔罪,為了保證數(shù)據(jù)的一致性秉沼,在得到磁盤回復(fù)前,是不能被其他進(jìn)程打斷矿酵,這個時候就處于不可中斷狀態(tài)氧猬。如果進(jìn)程被打斷了,就容易出現(xiàn)磁盤數(shù)據(jù)與進(jìn)城數(shù)據(jù)不一致的問題坏瘩。
所以,不可中斷狀態(tài)實際上是系統(tǒng)對進(jìn)程和硬件設(shè)備的一種保護(hù)機制漠魏。因此可以簡單地理解為倔矾,平均負(fù)載就是單位時間內(nèi)的活躍進(jìn)程數(shù)

(3)平均負(fù)載為多少時合理

理性狀態(tài)是每個CPU剛好運行著一個進(jìn)程,每個CPU都得到了充分利用柱锹,在評判平均負(fù)載時哪自,首先通過top命令獲取,或使用grep 'model name' /etc/cpuinfo
例:1)如果在4個CPU的系統(tǒng)上禁熏,平均負(fù)載為2時壤巷,意味著CPU有50%的空閑
2)如果在2個CPU的系統(tǒng)上,平局負(fù)載為2時瞧毙,意味著所有的CPU都剛好占滿
3)如果在1個CPU的系統(tǒng)上胧华,平均負(fù)載為2時,意味著有一半的進(jìn)程競爭不到CPU

平均負(fù)載有三個值宙彪,應(yīng)該都關(guān)注

這三個只就像是天氣一樣矩动,如果只看晚上天氣,感覺在過冬天释漆,如果結(jié)合早上悲没、中午、晚上三個時間點的溫度看男图,就可以了解的更全面示姿,所以應(yīng)該三個都關(guān)注
(1)如果三個值基本相同的話甜橱,那就說明平均負(fù)載是正常的
(2)1 分鐘小于15 分鐘的值,說明平均負(fù)載在減少栈戳,15 分鐘就有很大的負(fù)載
(3)1 分鐘大于15 分鐘的值岂傲,說明1 分鐘負(fù)載在增加,所以需要持續(xù)觀察

(4)實際環(huán)境生產(chǎn)環(huán)境中荧琼,平均負(fù)載高時譬胎,需要重點關(guān)注

當(dāng)平均負(fù)載高于70%時,應(yīng)該分析排查負(fù)載高的問題命锄,一旦負(fù)載過高堰乔,有可能導(dǎo)致進(jìn)程響應(yīng)慢,影響服務(wù)的正常功能
最好的辦法就是脐恩,把系統(tǒng)的平均負(fù)載監(jiān)控起來镐侯,然后根據(jù)更多的歷史數(shù)據(jù),判斷負(fù)載變化的趨勢驶冒,發(fā)現(xiàn)負(fù)載有明顯升高時苟翻,在做分析調(diào)查

(5)平均負(fù)載與CPU使用率的關(guān)系

平均負(fù)載是指單位時間內(nèi),處于可運行狀態(tài)和不可中斷狀態(tài)的進(jìn)程數(shù)骗污,所以崇猫,他不僅包括正在使用的CPU進(jìn)程,還包括等待CPU和等待I/O的進(jìn)程
而CPU使用率需忿,是單位時間內(nèi)CPU繁忙情況下的統(tǒng)計诅炉,跟平均負(fù)載不一定完全對應(yīng)
CPU密集型進(jìn)程,使用大量CPU會導(dǎo)致平均負(fù)載升高屋厘,兩者是一致的
I/O密集型進(jìn)程涕烧,等待I/O也會導(dǎo)致平均負(fù)載過高,但CPU使用率不一定高
大量CPU的進(jìn)程調(diào)度也會導(dǎo)致平均負(fù)載過高汗洒,此時的CPU使用率也會·較高

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末议纯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子溢谤,更是在濱河造成了極大的恐慌瞻凤,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溯香,死亡現(xiàn)場離奇詭異鲫构,居然都是意外死亡,警方通過查閱死者的電腦和手機玫坛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進(jìn)店門结笨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事炕吸》ズ叮” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵赫模,是天一觀的道長树肃。 經(jīng)常有香客問我,道長瀑罗,這世上最難降的妖魔是什么胸嘴? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮斩祭,結(jié)果婚禮上劣像,老公的妹妹穿的比我還像新娘。我一直安慰自己摧玫,他們只是感情好耳奕,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诬像,像睡著了一般屋群。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坏挠,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天芍躏,我揣著相機與錄音,去河邊找鬼降狠。 笑死纸肉,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的喊熟。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼姐刁,長吁一口氣:“原來是場噩夢啊……” “哼芥牌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起聂使,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤壁拉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后柏靶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弃理,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年屎蜓,在試婚紗的時候發(fā)現(xiàn)自己被綠了痘昌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖辆苔,靈堂內(nèi)的尸體忽然破棺而出算灸,到底是詐尸還是另有隱情,我是刑警寧澤驻啤,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布菲驴,位于F島的核電站,受9級特大地震影響骑冗,放射性物質(zhì)發(fā)生泄漏赊瞬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一贼涩、第九天 我趴在偏房一處隱蔽的房頂上張望巧涧。 院中可真熱鬧,春花似錦磁携、人聲如沸褒侧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽闷供。三九已至,卻和暖如春统诺,著一層夾襖步出監(jiān)牢的瞬間歪脏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工粮呢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留婿失,地道東北人。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓啄寡,卻偏偏與公主長得像豪硅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子挺物,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

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