Linux進程管理命令詳解_第1頁
Linux進程管理命令詳解_第2頁
Linux進程管理命令詳解_第3頁
Linux進程管理命令詳解_第4頁
Linux進程管理命令詳解_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Linux進程管理命令詳解Linux進程管理命令詳解2010-10-08 14:124.3 Linux進程管理命令詳解(1)Linux管理進程的最好方法就是使用命令行下的系統命令。Linux下面的進程涉及的命令有at,bg,fg,kill,crontab,jobs,ps,pstree,top,nice,renice,sleep,nohup。1.at命令:定時運行命令作用:at命令在指定時刻執行指定的命令序列。格式:at-V-q x-f file-mtime atq-V-q xatrm-V-q xjobbatch-V-f file-m主要選項如下。-V:顯示作業將被執行的時間。-q:選用q參數則

2、可選隊列名稱,隊列名稱可以是az和AZ之間的任意字母。隊列字母順序越高則隊列優先級別越低。-f:從文件中讀取命令或shell腳本,而非在提示后指定它們。-m:執行完作業后發送電子郵件到用戶。time:設定作業執行的時間。time參數可以是下面格式中的任何一種。HH:MM格式-如04:00,代表4:00AM。如果時間已過,就會在第二天的這一時間執行。midnight代表12:00AM。noon代表12:00PM。teatime代表4:00PM。英文月名日期年份格式-如January 15 2005,代表2005年1月15日。年份可無。MMDDYY、MM/DD/YY或MM.DD.YY格式-如011

3、505,代表2005年1月15日。now+時間格式-時間以minutes、hours、days或weeks為單位。如now+5 days,代表命令應該在5天之后的此時此刻執行。偏移量的格式為時間+偏移量,單位是minutes、hours和days。說明:at命令實際上是一組命令集合。at命令在指定時刻執行指定的命令序列。atq查詢已經設定的命令序列。atrm刪除已經設定的命令序列。batch當系統負載低于一個設定值(0.8),執行設定的命令序列。應用實例如下。(1)讓系統在兩天后的17:30執行文件data中指定的作業,使用命令:#at-f data 15:30+2 days(2)配置batc

4、h作業要在系統平均載量降到0.8以下時執行某項一次性的任務,使用batch命令。鍵入batch命令后,at提示就會出現。鍵入要執行的命令,按Enter鍵,然后鍵入Ctrl-D。你可以指定多條命令,方法是鍵入每一條命令后按Enter鍵。鍵入所有命令后,按Enter鍵轉入一個空行,然后再鍵入Ctrl-D。或者你也可以在提示后輸入shell腳本,在腳本的每一行后按Enter鍵,然后在空行處鍵入Ctrl-D來退出。系統平均載量一降到0.8以下,這組命令或腳本就會被執行。如果這組命令或腳本試圖在標準輸出中顯示信息,該輸出會用電子郵件方式被郵寄給用戶。(3)進階應用:控制對at和batch的使用通過/et

5、c/at.allow和/etc/at.deny文件可以用來限制對at和batch命令的使用。這兩個使用控制文件的格式都是每行一個用戶。兩個文件都不允許使用空白字符。如果控制文件被修改了,at守護進程不必被重啟。每次用戶試圖執行at或batch命令時,使用控制文件都會被讀取。不論控制文件如何規定,超級權限用戶總是可以執行at和batch命令。如果at.allow文件存在,只有其中列出的用戶才能使用at或batch命令,at.deny文件會被忽略。如果at.allow文件不存在,所有在at.deny文件中列出的用戶都被禁止使用at和batch命令。2.bg命令后臺運行命令作用:bg命令使一個被掛起

6、的進程在后臺執行。格式:bg該命令無參數。使用說明:Linux作為一個多任務環境,用戶會同時執行多項任務,例如,查看系統情況、備份資料、編輯文件和打印文件等。耗時長的任務不應該在前臺任務中執行,而應該交給后臺任務去執行。這樣前臺任務可繼續正常運作其他的操作,不用等待。應用實例如下。(1)如果要將一個大目錄的文件進行排序后,將結果輸入到一個文件中,可以使用命令:#du-a/|sort-rn/tmp/du.sorted(2)由于這個命令執行時間很長,可以把它放在后臺運行。使用組合鍵Ctrl+Z。然后使用bg命令。如果想直接把這個命令放在后臺執行,可以在命令后使用&符號:#du-a/|sort-rn

7、/tmp/du.sorted&1237m32 3.Fg掛起程序作用:fg命令使一個被掛起的進程在前臺執行。格式:fg-job-specjob-spec:后臺任務號碼。說明:fg命令和bg命令是相對應的。如果想查看后臺程序運行情況,可以使用fg命令把它調回前臺查看。bg命令可以使多個進程放到后臺中執行。應用實例如下。使用fg命令時,要加入后臺任務號碼,如果不加任何號碼,則所變動的均是當前任務。#du-a/|sort-rn/tmp/du.sorted&1237#fg 14.Jobs顯示后臺程序作用:jobs命令顯示后臺任務的執行情況。格式:jobs選項jobspec主要選項如下。-l:長輸出格式,

8、顯示全部內容。-n:不輸出信息。-p:只輸出進程號。-r:只輸出運行的進程。jobspec:后臺任務號碼。應用實例如下。先把兩個進程放在系統后臺運行,然后使用jobs命令查看后臺任務的執行情況:#du-a/etc user.data&1233#find/-name core-type f-ls core.data&2234#jobs-l1+237 Running du-a/etc user.data2-238 Running find/-name core-type f-ls core.data說明:上面的當前任務是du-a/etc user.data,因為后臺任務號碼是1。當第一個后臺任務順

9、利執行完畢,第二個后臺任務還在執行中時,當前任務便會自動變成后臺任務號碼2的后臺任務。即當前任務是動態的。5.kill命令殺掉進程作用:kill命令終止一個進程。格式:kill-s signal|-p-apidkill-lsignal主要選項如下。-s:指定發送的信號。-p:模擬發送信號。-l:指定信號的名稱列表。pid:要終止的進程的ID號。signal:表示信號。說明:kill可將指定的信息送至程序。預設的信息為SIGTERM(15),可將指定程序終止。若仍無法終止該程序,可使用SIGKILL(9)信息嘗試強制刪除程序。kill命令的工作原理是,向Linux系統的內核發送一個系統操作信號和

10、某個程序的進程標志號,然后系統內核就可以對進程標志號指定的進程進行操作。當需要中斷一個前臺進程的時候,通常使用Ctrl+C組合鍵;但是對于一個后臺進程,就不是一個組合鍵所能解決的了,這時就必須使用kill命令。應用實例如下。命令執行過程如果出錯,用戶可用kill來結束任務。對于在后臺運行的進程,可以使用kill命令終止:#du-a/|sort-rn/tmp/du.sorted&1237#kill 237或者使用命令:#du-a/|sort-rn/tmp/du.sorted&1237#kill%1對于僵尸進程,可以用kill-9來強制終止退出。比如一個程序已經徹底死掉,如果kill不加信號強度沒

11、有辦法退出,最好的辦法就是加信號強度-9,后面要接殺父進程;比如;比如:rootlocalhost#ps aux|grep gaim beinan 5031 9.0 2.3 104996 17484 S13:23 0:01 gaim root 5036 0.0 0.0 5160 724 pts/3 S+13:24 0:00 grep gaim kill命令族成員簡介如下。終止一個進程或終止一個正在運行的程序,一般通過kill、killall、pkill、xkill等進行。比如一個程序已經死掉,但又不能退出,這時就應該考慮應用這些工具。killall通過程序的名字,直接殺死所有進程,pkill和

12、killall的應用方法差不多,也是直接殺死運行中的程序。如果你想殺掉單個進程,請用kill來殺掉。xkill是在桌面用的殺死圖形界面的程序。比如當firefox出現崩潰不能退出時,點鼠標就能殺死firefox。當xkill運行時出來和個人腦骨的圖標,哪個圖形程序崩潰,一點就OK了。如果你想終止xkill,就單擊右鍵取消。6.crontab命令作用:crontab命令用于安裝、刪除或者列出用于驅動cron后臺進程的任務表。然后,該配置由cron守護進程在設定的時間執行。格式:crontab-u user文件crontab-u user-e|-l|-r主要選項如下。-e:執行文字編輯器來設定時程

13、表,默認的文字編輯器是vi。-r:刪除目前的時程表。-l:列出目前的時程表。-u user:指定要設置的用戶名稱。crontab文件的格式是:minute hour day month dayofweek command minute-分鐘,從059之間的任何整數。hour-小時,從023之間的任何整數。day-日期,從131之間的任何整數(如果指定了月份,必須是該月份的有效日期)。month-月份,從112之間的任何整數(或使用月份的英文簡寫如jan、feb等)。dayofweek-星期,從07之間的任何整數,這里的0或7代表星期日(或使用星期的英文簡寫如sun、mon等)。command-

14、要執行的命令(可以是ls之類的命令,也可以是執行你自行編寫的腳本的命令。)應用實例如下。設置一個定時、定期的系統提示:caowww cao#crontab-e此時系統會打開一個vi編輯器,如果我輸入35 17*5 Wall明天休息,注意備份數據庫,然后存盤退出。這時在/var/spool/cron/目錄下會生產一個cao的文件,內容如下:#DO NOT EDIT THIS FILE-edit the master and reinstall.#(/tmp/crontab.2707 installed on Thu Jan 122:01:51 2004)#(Cron version-$Id:cr

15、ontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp$)35 17*5 wall明天休息,注意備份數據庫這樣到每個星期五下班時間(17:35),系統就會彈出一個終端提醒我們注意備份數據庫。顯示結果如圖4-7所示。(點擊查看大圖)圖4-7一個定時、定期的系統提示7.ps命令查看權限作用:ps命令主要查看系統中進程的狀態。格式:ps選項主要選項如下。-A:顯示系統中所有進程的信息。-e:顯示所有進程的信息。-f:顯示進程的所有信息。-l:以長格式顯示進程信息。-r:只顯示正在運行的進程。-u:顯示面向用戶的格式(包括用戶名、CPU及內存使用情況等信息)。-x:顯

16、示所有非控制終端上的進程信息。-p:顯示由進程ID指定的進程的信息。-t:顯示指定終端上的進程的信息。說明:要對進程進行監測和控制,首先要了解當前進程的情況,也就是需要查看當前進程。ps命令就是最基本、也是非常強大的進程查看命令。根據顯示的信息可以確定哪個進程正在運行、哪個進程被掛起、進程已運行了多久、進程正在使用的資源、進程的相對優先級,以及進程的標志號(PID)。所有這些信息對用戶都很有用,對于系統管理員來說更為重要。使用ps-aux命令可以獲得終端上所有用戶的有關進程的所有信息,下面結合圖4-8講解進程的基本信息。圖4-8第二行代碼中,USER表示啟動進程用戶。PID表示進程標志號。%C

17、PU表示運行該進程占用CPU的時間與該進程總的運行時間的比例。%MEM表示該進程占用內存和總內存的比例。VSZ表示占用的虛擬內存大小,以KB為單位。RSS為進程占用的物理內存值,以KB為單位。TTY表示該進程建立時所對應的終端,?表示該進程不占用終端。STAT表示進程的運行狀態,包括以下幾種代碼:D,不可中斷的睡眠;R,就緒(在可運行隊列中);S,睡眠;T,被跟蹤或停止;Z,終止(僵死)的進程,Z不存在,但暫時無法消除;W,沒有足夠的內存分頁可分配;高優先序的進程;N,低優先序的進程;L,有內存分頁分配并鎖在內存體內(實時系統或I/O)。START為進程開始時間。TIME為執行的時間。COMM

18、AND是對應的命令名。(點擊查看大圖)圖4-8 ps-aux命令詳解應用實例如下。在進行系統維護時,如果CPU負載突然增加,而又不知道是哪一個進程造成的情況。使用命令:#ps aux|sort+3n說明因為%CPU選項在第三列,所以sort選3作為參數,+表示升序輸出結果。8.pstree命令pstree命令列出當前的進程,以及它們的樹狀結構。格式:pstree選項pid|user主要選項如下。-a:顯示執行程序的命令與完整參數。-c:取消同名程序,合并顯示。-h:對輸出結果進行處理,高亮顯示正在執行的程序。-l:長格式顯示。-n:以PID大小排序。-p:顯示PID。-u:顯示UID信息。-G

19、:使用VT100終端編碼顯示。-U:使用UTF-8(Unicode)編碼顯示。說明:使用ps命令得到的數據精確,但數據龐大,這一點對掌握系統整體概況來說是不容易的。pstree正好可以彌補這個缺憾。它能將當前的執行程序以樹狀結構顯示。pstree支持指定特定程序(PID)或使用者(USER)作為顯示的起始。應用實例如下。進程啟動的時候可能會產生自己的一個子進程。運行pstree命令就可以很容易地看到這些信息。以超級用戶權限運行pstree:#init-+-apmd|-atd|-bdflush|-gconfd-2|-gdm-binary-gdm-binary-+-X|-startkde-+-kw

20、rapper|-ssh-agent|-gpm|-httpd-8*httpd下略命令對程序名稱相同的會自動合并,所有|-httpd-8*httpd即表示系統中有8個httpd進程產生的子進程。9.top命令顯示進程top命令用來顯示系統當前的進程狀況。格式:top選項主要選項如下。d:指定更新的間隔,以秒計算。q:沒有任何延遲的更新。如果使用者有超級用戶,則top命令將會以最高的優先序執行。c:顯示進程完整的路徑與名稱。S:累積模式,會將已完成或消失的子進程的CPU時間累積起來。s:安全模式。i:不顯示任何閑置(Idle)或無用(Zombie)的進程。n:顯示更新的次數,完成后將會退出top。說

21、明:top命令和ps命令的基本作用是相同的,都顯示系統當前的進程狀況。但是top是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態。這里結合圖4-9來說明它給出的信息。(點擊查看大圖)圖4-9 top命令詳解在圖4-9中,第一行表示的項目依次為當前時間、系統啟動時間、當前系統登錄用戶數目、平均負載。第二行顯示的是所有啟動的、目前運行的、掛起(Sleeping)的和無用(Zombie)的進程。第三行顯示的是目前CPU的使用情況,包括系統占用的比例、用戶使用比例、閑置(Idle)比例。第四行顯示物理內存的使用情況,包括總的可以使用的內存、已用內存、空閑內存、緩沖區占用的內存。第五行顯示交換分

22、區的使用情況,包括總的交換分區、使用的、空閑的和用于高速緩存的交換分區。第六行顯示的項目最多,下面列出了詳細解釋。PID(Process ID):進程標志號,是非零正整數。USER:進程所有者的用戶名。PR:進程的優先級別。NI:進程的優先級別數值。VIRT:進程占用的虛擬內存值。RES:進程占用的物理內存值。SHR:進程使用的共享內存值。STAT:進程的狀態,其中S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值是負數。%CPU:該進程占用的CPU使用率。%MEM:該進程占用的物理內存和總內存的百分比。TIME:該進程啟動后占用的總的CPU時間。COMMAND:進程啟動的啟動命令

23、名稱,如果這一行顯示不下,進程會有一個完整的命令行。top命令使用過程中,還可以使用一些交互的命令來完成其他參數的功能。這些命令是通過快捷鍵啟動的。空格:立刻刷新。P:根據CPU使用大小進行排序。T:根據時間、累計時間排序。q:退出top命令。m:切換顯示內存信息。t:切換顯示進程和CPU狀態信息。c:切換顯示命令名稱和完整命令行。M:根據使用內存大小進行排序。W:將當前設置寫入/.toprc文件中。這是寫top配置文件的推薦方法。可以看到,top命令是一個功能十分強大的監控系統的工具,對于系統管理員而言尤其重要。但是,它的缺點是會消耗很多系統資源。10.nice命令改變權限優先級作用:nic

24、e命令可以改變程序執行的優先權等級。格式:nice-n優先等級-help-version命令主要選項如下。-n優先等級或-優先等級或-adjustment=優先等級:設置欲執行的命令的優先權等級。等級的范圍從-2019,其中-20為最高,19為最低。-help:在線幫助。說明:應用程序優先權值的范圍從-2019,數字越小,優先權就越高。一般情況下,普通應用程序的優先權值(CPU使用權值)都是0,如果讓常用程序擁有較高的優先權等級,自然啟動和運行速度都會快些。需要注意的是普通用戶只能在019之間調整應用程序的優先權值,只有超級用戶有權調整更高的優先權值(從-2019)。應用實例如下。將ls命令的

25、優先序加1并執行,將結果輸入文件1.txt:#nice-n 1ls 1.txt 11.renice命令修改優先級作用:renice命令允許用戶修改一個正在運行的進程的優先權。格式:renice priority-ppids-gpgrps-uusers主要選項如下。priority:優先等級-p pids:改變該程序的優先權等級,此參數為預設值。-g pgrps:使用程序群組名稱,修改所有隸屬于該程序群組的程序的優先權。-u user:指定用戶名稱,修改所有隸屬于該用戶的程序的優先權。說明:renice命令可重新調整正在執行的程序的優先權等級。默認是以程序識別碼指定程序,調整其優先權,也可以指定

26、程序群組或用戶名稱調整優先權等級,并修改所有隸屬于該程序群組或用戶的程序的優先權。等級范圍從-2019,只有超級用戶可以改變其他用戶程序的優先權和設置負數等級。普通用戶只能對自己所有的進程使用renice命令。應用實例如下。將進程PID為987及32的進程與進程擁有者為daemon及root的優先級別號加1:#renice+1 987-u daemon root-p 32 12.sleep命令暫停進程作用:sleep命令的功能是使進程暫停執行一段時間。格式:sleep number選項主要選項如下。number:時間長度,后面可接s、m、h或d。s:以秒為單位。m:以分鐘為單位。h:以小時為單

27、位。d:以天為單位。說明:如果沒有指定時間,以秒為單位。此命令大多用于shell程序設計中,使兩條命令執行之間停頓指定的時間。應用實例如下。下面的命令使進程先暫停60秒,然后查看哪個用戶登錄到系統中:#sleep 60;who 13.nohup命令用戶退出系統之后繼續工作作用:nohup命令確保執行程序能在用戶退出系統之后繼續工作。格式:nohup命令說明:一般退出Linux系統時,會把所有的程序全部結束掉,包括那些后臺程序。但有時候,例如,用戶正在下載一個很大的文件,但是你因下班或有事需要先退出系統,希望退出系統時程序還能繼續執行。這時,我們就可以使用nohup命令使進程在用戶退出后仍繼續執

28、行。同時這些進程都在后臺執行(命令放到后臺運行,nohup必須與&操作同時使用),結果則會寫到用戶自己的目錄下的nohup.out文件里。應用實例如下。程序在后臺自動執行:nohup wget-c-t0&14.pgrep命令作用:pgrep命令查找當前運行的進程,并列出匹配給定條件的進程的pid。所有的條件都必須匹配才會被列出。使用權限:所有用戶。格式:Pgrep選項程序名選項如下。-l:列出程序名和進程ID。-o:進程起始的ID。-n:進程終止的ID。應用實例如下。用戶cao查看sshd的進程列表:caolocalhostcao$pgrep-l sshd 829 sshd 15.chkcon

29、fig命令設置系統的各種服務作用:chkconfig命令檢查,設置系統的各種服務。格式:chkconfig-add-del-list系統服務或chkconfig-level等級代號系統服務on/off/reset主要選項如下。-add:增加所指定的系統服務,讓chkconfig指令得以管理它,并同時在系統啟動的敘述文件內增加相關數據。-del:刪除所指定的系統服務,不再由chkconfig指令管理,并同時在系統啟動的敘述文件內刪除相關數據。-level等級代號:指定讀系統服務要在哪一個執行等級中開啟或關畢。說明:chkconfig提供了一個簡單的命令行工具用于維護/etc/rc0-6.d的路徑層次,可以幫助系統管理員在這些路徑中直接操作符號行,chkconfig的執行是通過chkconfig命令激發的,此命令目前在irix操作系統中存在。甚至包括了維護/etc/rc0-6.d層次之外的設置信息。chkconfig有5個不同的函數:為管理器添加新服務,從管理器中移出服務,列出當前啟動的服務信息,改變服務啟動信息,檢查特殊服務的啟動狀態。這是Red Hat公司遵循GPL規則所開發的程序,它可查詢操作系統在每一個執行等級中會執行哪些系統服務,其中包括各類常駐服務。應用實例如下。Chkconfig管理服務技巧如果你使用chkconfig-list命令,你會看到一個系統服務列表,以及它

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論