當(dāng)前位置:首頁文章首頁 IT學(xué)院 IT技術(shù)

Linux下的進程管理

作者:  來源:  發(fā)布時間:2012-2-16 16:10:02  點擊:

  在Windows中分為進程和線程,而這些概念在Linux中同樣適用,而所謂的進程process既是資源分配的單位,一個進程的發(fā)起想要調(diào)度CPU進行執(zhí)行則需要或得CPU的時間片,同樣在獲得CUP的時間片后,還有相應(yīng)的優(yōu)先級,從而才能有序的執(zhí)行。在進程的發(fā)起后狀態(tài)分為:Running運行、Ready就緒、Sleep睡眠、Stop停止、Zomebie僵死;這些狀態(tài)的意思顧名思義相信大家都可以理解。

  在windows中我們通?梢哉{(diào)出資源管理器查看當(dāng)前執(zhí)行的進程,而在Linux中有一個進程樹(pstree)可以詳細的形象的展示出Linux中的進程關(guān)系。

  1、顯示當(dāng)前系統(tǒng)上運行的前臺進程可以用命令:ps

  而在這里的一些參數(shù)一部分是按照BSD的格式進行使用的,也有一部分是按照sysV格式的顯示

  參數(shù):aux:顯示當(dāng)前系統(tǒng)上的所有進程(也是我們經(jīng)常用的組合) #ps aux

  x:顯示出跟終端不相關(guān)的進程

  a:顯示出跟終端相關(guān)的進程 #ps au:以進程發(fā)起的用戶為開頭顯示

  -e:顯示所有進程

  -f:顯示詳細信息 通常使用-ef組合 #ps -ef

  -ejH=axjf:按照進程的父子關(guān)系進行自動縮進

  o:依照用戶的設(shè)置格式進行顯示 #ps axo pid,tty,cmd,stat

  2、有時服務(wù)器運行著大量的進程時,需要查找到某個進程,并查看其信息時則用到:

  pgrep:查找進程

  參數(shù):-U:根據(jù)用戶的UID查找其發(fā)起的相應(yīng)進程

  -G:根據(jù)用戶的GID查找其發(fā)起的相應(yīng)進程

  -t:查找跟終端相關(guān)的進程

  -P:查找父進程為某一個子進程

  pidof:查找某些進程的id號

  例如:#pidof bash

  

  3、在進程信息顯示中,可以看到STAT中有很多的符號,其意義

  S:可中斷的睡眠狀態(tài)

  R:運行態(tài)

  D:不可中斷的睡眠態(tài)

  T:停止態(tài)

  Z:僵死態(tài)

  <:高優(yōu)先級的進程

  s:會話進程的發(fā)起者

  N:低優(yōu)先級的進程

  l:多線程的進程

  +:前臺進程

  通過分析這些進程的狀態(tài),我們可以根據(jù)實際情況對其采取想要的操作,以達到對服務(wù)器的調(diào)優(yōu)以及對某些服務(wù)的重置。

  4、說到對這些進程進行操作,這就得提到信號(Signal)

  #kill -l:查看所有的信號,其中前面的數(shù)字為信號的代號,后面則為名字

  經(jīng)常用到的幾個信號:

  1)SIGHUP:通知某一個進程重讀自己的配置文件卻不用重啟

  2)SIGINT:類似于ctrl+c取消

  9)SIGKILL:殺死某進程

  15)SIGTERM:終止

  18)SIGCONT:繼續(xù)

  19)SIGSTOP:停止

  使用kill來發(fā)送信號:

  kill -SIGNAL_NU PID #kill -15 2887 對進程ID為2887的進程發(fā)出終止信號

  kill -SIGNAL_NU PROCESS #kill -15 httpd 終止httpd服務(wù)

  5、在上面提到一個進程的發(fā)起到執(zhí)行是安裝其優(yōu)先級的高低來進行執(zhí)行順序的,所以在說一說進程的優(yōu)先級

  優(yōu)先級分為:動態(tài)優(yōu)先級(進程的發(fā)起時內(nèi)核自動計算的)、靜態(tài)優(yōu)先級(可手工調(diào)整)

  通常情況下:I/O 設(shè)備的優(yōu)先級要高,但是獲取的CPU時間片短,當(dāng)你鍵入一個字母或移動下鼠標(biāo)時,CPU就會立即進行相應(yīng),并執(zhí)行,這就是因為I/O設(shè)備的優(yōu)先級較高

  多媒體之類的這些進程優(yōu)先級就較低,但是獲取的CPU時間片長,因為一個音樂或電影的打開,一般就會一直執(zhí)行下去。而這些進程的優(yōu)先級大部分都是系統(tǒng)內(nèi)核自動計算的。

  靜態(tài)優(yōu)先級的調(diào)整用過調(diào)整nice值來進行調(diào)整的,而普通用戶在調(diào)整一個進程的優(yōu)先級時,只能在進程優(yōu)先級的基礎(chǔ)上將其調(diào)低,而不能將其調(diào)高,管理員root則沒有限制;nice值:-20---19分別對應(yīng)優(yōu)先級100---139,nice值越小,優(yōu)先級值也越低,從而其優(yōu)先級越高,而在一個進程的發(fā)起時其nice值一般默認的都是0;

  nice:在進程啟動時直接賦予一個值

  格式:nice -n NU COMMAND

  例如:#nice -n 15 ftp 192.168.0.254

  查看其nice值

  renice:在進程啟動后進行nice值的修改

  格式:renice # PID

  例如:#renice 2 3133

  6、后臺狀態(tài)

  當(dāng)一個命令執(zhí)行的時間較長,例如我們拷貝一個大文件,而此時他沒有執(zhí)行結(jié)束,我們是不能進行其他的操作的,但是我們又需要進行其他的操作,這時就可以將它移至后臺: 查看后臺任務(wù):jobs

  從前臺轉(zhuǎn)移到后臺:ctrl+z 俗稱掛起,在后臺停止了,并不繼續(xù)執(zhí)行

  從后臺轉(zhuǎn)移到前臺:fg 默認調(diào)回的是有加號的

  從后臺轉(zhuǎn)移到前臺一個特定的進程:fg %NU

  

  將后臺的某個進程讓它繼續(xù)執(zhí)行:bg %nu

  使一個進程和一個中斷沒有關(guān)系:nohup COMMAND

  啟動命令時直接將其送到后臺:startx &

  結(jié)束后臺的某個進程:kill %NU

  在結(jié)束后臺任務(wù)2時,進程狀態(tài)由Stopped變到Terminated最后結(jié)束,后臺只剩下一個任務(wù)了。

相關(guān)軟件

相關(guān)文章

文章評論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z