在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ UNIX 進程管理
UNIX 文件權限/訪問模式
UNIX 系統(tǒng)性能
UNIX 管道和過濾器
UNIX 進程管理
Shell 內置數學函數
UNIX 環(huán)境
UNIX 文件管理
Unix
UNIX 網絡實用工具
UNIX 系統(tǒng)日志
UNIX 目錄管理
vi編輯器教程
Unix 基本工具(打印,電子郵件)
UNIX 用戶管理
UNIX 信號和陷阱
Unix 正則表達式SED
Unix 文件系統(tǒng)基礎
Unix是什么?
Unix 有用命令

UNIX 進程管理

當你執(zhí)行一個程序在UNIX系統(tǒng)上,該系統(tǒng)為該程序創(chuàng)建一個特殊的環(huán)境。這個環(huán)境包含系統(tǒng)運行的程序,如果沒有其他程序在系統(tǒng)上運行所需要的一切。

每當你發(fā)出命令在UNIX中,創(chuàng)建或啟動一個新的進程。當你嘗試了合列出目錄的內容,你啟動了一個進程。一個過程,簡單來說,就是一個正在運行的程序的一個實例。

操作系統(tǒng)將跟蹤進程稱為PID或進程ID通過五位ID號。該系統(tǒng)中的每個進程都有一個唯一的pid。

PIDS最終重復,因為所有可能的數字和未來的PID滾動或重新開始。在任何一個時間,沒有兩個具有相同的pid的進程在系統(tǒng)中存在,因為它是UNIX使用跟蹤每個進程的pid。

啟動進程:

當你啟動一個進程(運行命令),您可以運行它有兩種方法:

  • 前臺進程

  • 后臺進程

前臺進程:

默認情況下,每一個過程,你開始在前臺運行。從鍵盤輸入,并將其輸出到屏幕上。

使用ls命令,你可以看到這一點。如果我要列出當前目錄中的所有文件,就可以使用下面的命令:

$ls ch*.doc

這將顯示所有文件的名稱開始ch和結束以 .doc:

ch01-1.doc   ch010.doc  ch02.doc    ch03-2.doc 
ch04-1.doc   ch040.doc  ch05.doc    ch06-2.doc
ch01-2.doc   ch02-1.doc

程序在前臺運行,輸出定向到我的屏幕,如果ls命令希望任何輸入(事實并非如此),它會等待從鍵盤。

當程序在前臺運行,并采取太多的時間,我們不能運行任何其他命令(啟動任何其他的進程),因為提示將無法使用,直到程序完成其加工出來。

后臺進程:

后臺進程運行,而無需連接到你的鍵盤。如果后臺進程需要任何鍵盤輸入,它會等待。

進程在后臺運行的優(yōu)點是,你可以運行其他命令,你不必等待,直到它完成啟動另一個!

啟動一個后臺進程的最簡單的方法是在命令末尾添加一個符號(&)。

$ls ch*.doc &

這也將顯示所有文件的名稱開始ch和結束的 .doc:

ch01-1.doc   ch010.doc  ch02.doc    ch03-2.doc 
ch04-1.doc   ch040.doc  ch05.doc    ch06-2.doc
ch01-2.doc   ch02-1.doc

這里如果ls命令希望任何輸入(事實并非如此),進入停止狀態(tài),直到我把它移動到前臺,并給它的數據從鍵盤。

也就是說第一行包含有關后臺進程的信息 - 工作的數量和進程ID。你需要了解作業(yè)的數量,操縱它在前臺和后之間。

如果你現在按下回車鍵,看到以下內容:

[1]   +   Done                 ls ch*.doc &
$

第一行告訴你ls命令的后臺進程成功完成。第二個是另一個命令提示。

列出正在運行的進程:

這是很容易看到自己的進程運行的ps(進程狀態(tài))命令如下:

$ps
PID       TTY      TIME        CMD
18358     ttyp3    00:00:00    sh
18361     ttyp3    00:01:31    abiword
18789     ttyp3    00:00:00    ps

其中最常用的標志 -f ( f for full) 選項,它提供了更多的信息,如下面的示例所示:

$ps -f
UID      PID  PPID C STIME    TTY   TIME CMD
amrood   6738 3662 0 10:23:03 pts/6 0:00 first_one
amrood   6739 3662 0 10:22:54 pts/6 0:00 second_one
amrood   3662 3657 0 08:10:53 pts/6 0:00 -ksh
amrood   6892 3662 4 10:51:50 pts/6 0:00 ps -f

這里是ps-f命令顯示的所有字段的描述:

Column 描述
UID User ID that this process belongs to (the person running it).
PID Process ID.
PPID Parent process ID (the ID of the process that started it).
C CPU utilization of process.
STIME Process start time.
TTY Terminal type associated with the process
TIME CPU time taken by the process.
CMD The command that started this process.

還有其他的選擇可以一起使用ps命令:

Option 描述
-a Shows information about all users
-x Shows information about processes without terminals.
-u Shows additional information like -f option.
-e Display extended information.

停止進程:

幾種不同的方法可以做到在結束過程。通常情況下,從一個基于控制臺的命令,發(fā)送CTRL + C按鍵(默認中斷字符)將退出命令。這工作進程正在運行時在前臺模式。

如果一個進程在后臺模式下運行,那么首先你需要得到其作業(yè)ID,使用ps命令后,你可以使用kill命令來殺死進程如下:

$ps -f
UID      PID  PPID C STIME    TTY   TIME CMD
amrood   6738 3662 0 10:23:03 pts/6 0:00 first_one
amrood   6739 3662 0 10:22:54 pts/6 0:00 second_one
amrood   3662 3657 0 08:10:53 pts/6 0:00 -ksh
amrood   6892 3662 4 10:51:50 pts/6 0:00 ps -f
$kill 6738
Terminated

這里kill命令將終止first_one的過程。如果一個進程忽略了正規(guī)的kill命令,你可以使用kill-9進程ID如下:

$kill -9 6738
Terminated

父進程和子進程:

每個UNIX進程有兩個ID號分配給它的進程ID(PID)和父進程ID(PPID)。系統(tǒng)中的每一個用戶進程都有一個父進程。

您運行的大部分命令作為其父的shell。檢查ps -f 這個命令列出進程ID和父進程ID。

僵尸和孤兒進程:

通常情況下,當一個孩子被殺害,被告知父進程通過一個SIGCHLD信號。然后,父進程可以做一些其他的任務,或者需要重新啟動一個新的子進程。然而,有時父進程在子進程之前被殺死。在這種情況下,“父的所有進程,”init進程,成為新的PPID(父進程ID)。有時,這些進程被稱為孤兒進程。

當一個進程被殺死,ps列出可能仍然顯示一個Z狀態(tài)的過程。這是一具僵尸或解散過程。進程是死的,不被使用。這些過程是不同于孤立進程。它們是已完成執(zhí)行的處理,但仍然有進程表中的一個條目。

守護進程:

守護進程是系統(tǒng)相關的后臺進程,往往根和服務請求來自其他進程的權限運行。

守護進程沒有控制終端。它不能打開/dev/tty。如果你用“ps-ef”,并期待在tty字段中,所有的守護進程將有一個嗎? tty。

更清楚的是,僅僅是一個守護進程在后臺運行的進程,通常在等待一些事情發(fā)生,它是有能力的工作,就像一臺打印機守護進程正在等待打印命令。

如果你有一個程序需要做長期處理,那么使其成為一個守護進程,它在后臺運行。

top命令:

top命令是一個非常有用的工具,用于快速顯示按各種標準排序的的進程。

這是一個互動的診斷工具,經常更新,并顯示物理和虛擬內存,CPU使用率,平均負載,以及您繁忙的的進程的信息。

下面是簡單的語法來運行top命令,并看到不同進程的CPU利用率的統(tǒng)計:

上一篇:Unix 有用命令下一篇:UNIX 網絡實用工具