歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux命令 >> Linux系統進程管理命令詳解

Linux系統進程管理命令詳解

日期:2017/2/28 10:02:36   编辑:Linux命令
Linux命令 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] [-m] time
atq [-V] [-q x]
atrm [-V] [-q x] job…
batch [-V] [-f file] [-m]

主要選項如下。

-V:顯示作業將被執行的時間。

-q:選用q參數則可選隊列名稱,隊列名稱可以是a~z和A~Z之間的任意字母。隊列字母順序越高則隊列優先級別越低。

-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格式--如011505,代表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)配置batch作業

要在系統平均載量降到0.8以下時執行某項一次性的任務,使用batch命令。鍵入batch命令後,"at>"提示就會出現。鍵入要執行的命令,按"Enter"鍵,然後鍵入"Ctrl-D"。你可以指定多條命令,方法是鍵入每一條命令後按"Enter"鍵。鍵入所有命令後,按"Enter"鍵轉入一個空行,然後再鍵入"Ctrl-D"。或者你也可以在提示後輸入shell腳本,在腳本的每一行後按"Enter"鍵,然後在空行處鍵入"Ctrl-D"來退出。系統平均載量一降到0.8以下,這組命令或腳本就會被執行。如果這組命令或腳本試圖在標准輸出中顯示信息,該輸出會用電子郵件方式被郵寄給用戶。

(3)進階應用:控制對at和batch的使用

通過/etc/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命令使一個被掛起的進程在後台執行。

格式:bg

該命令無參數。

使用說明:Linux作為一個多任務環境,用戶會同時執行多項任務,例如,查看系統情況、備份資料、編輯文件和打印文件等。耗時長的任務不應該在前台任務中執行,而應該交給後台任務去執行。這樣前台任務可繼續正常運作其他的操作,不用等待。

應用實例如下。

(1)如果要將一個大目錄的文件進行排序後,將結果輸入到一個文件中,可以使用命令:

#du -a / | sort -rn > /tmp/du.sorted
(2)由於這個命令執行時間很長,可以把它放在後台運行。使用組合鍵"Ctrl+Z"。然後使用bg命令。如果想直接把這個命令放在後台執行,可以在命令後使用"&"符號:
#du -a / | sort -rn > /tmp/du.sorted &
[1] 237m32

3.Fg掛起程序

作用:fg命令使一個被掛起的進程在前台執行。

格式:fg -[job-spec]

[job-spec]:後台任務號碼。

說明:fg命令和bg命令是相對應的。如果想查看後台程序運行情況,可以使用fg命令把它調回前台查看。bg命令可以使多個進程放到後台中執行。

應用實例如下。

使用fg命令時,要加入後台任務號碼,如果不加任何號碼,則所變動的均是當前任務。

#du -a / | sort -rn > /tmp/du.sorted &
[1] 237
#fg 1

4.Jobs顯示後台程序

作用:jobs命令顯示後台任務的執行情況。

格式:jobs [選項] [jobspec…]

主要選項如下。

-l:長輸出格式,顯示全部內容。

-n:不輸出信息。

-p:只輸出進程號。

-r:只輸出運行的進程。

[jobspec]:後台任務號碼。

應用實例如下。

先把兩個進程放在系統後台運行,然後使用jobs命令查看後台任務的執行情況:

#du -a /etc > user.data &
[1] 233
# find / -name core -type f -ls > core.data &
[2] 234
#jobs -l
[1] + 237 Running du -a /etc > user.data
[2] - 238 Running find / -name core -type f -ls > core.data

說明:上面的當前任務是"du -a /etc > user.data",因為後台任務號碼是"[1]"。當第一個後台任務順利執行完畢,第二個後台任務還在執行中時,當前任務便會自動變成後台任務號碼"[2]"的後台任務。即當前任務是動態的。

Copyright © Linux教程網 All Rights Reserved