UNIX學習筆記(四)

一.多任務

UNIX可以同時做很多的事情,在多個任務之間輪流分配處理器的處理時間進行的如此之快,以至於所有事情看起來都像是同時執行的。這就被稱作多任務。

大多數UNIX系統允許在同一個終端中運行多個程序,這被稱作作業控制。該機制可以向沒有窗口的用戶提供只有窗口系統纔有的好處。但是即使運行窗口系統,你也許希望使用作業控制在同一終端窗口中做多件事情。比如,你也許喜歡在一個終端窗口中做大部分工作,而不是使整個桌面佈滿窗口。

爲什麼需要作業控制?假設你運行一個需要很長處理時間的程序。在諸如MS-DOS之類的單任務操作系統中,你需要輸入該命令,等系統提示符出現後纔可以輸入新命令。然而,在UNIX系統中,你可以在“前臺”輸入新命令,同時在“後臺”運行多個程序。

當輸入某命令作爲後臺進程時,shell提示符會很快重新出現,以便你輸入新命令。

1.在後臺運行命令

爲了在後臺運行某程序,應該在按下return前在命令的末尾加&字符,然後shell會分配和顯示該進程的ID號。

如:sort bigfile >bigfile.sort &

  也可以使用CTRL+Z掛起在前臺運行的程序。然後使用bg命令或將掛起的程序放到後臺執行,fg命令可以使後臺運行的命令或被掛起的程序提升到前臺運行。

2.檢測進程

如果某後臺進程執行時間很長,或者你改變了主意,想停止某進程,則你可以檢測進程的狀態,甚至取消它。

0x01 ps

當輸入命令ps時,你可以獲得如下信息:進程運行時間,後臺進行的進程ID以及運行該進程的終端名稱。

基本形式下,ps會列出如下的信息:

進程ID(PID)

由UNIX爲進程指定的唯一號碼。

終端名(TTY)

啓動該進程的終端的UNIX名稱。

運行時間(TIME)

進程已經使用的計算機時間總量(以時分秒計算)。

命令(CMD)

進程的名稱。

0x02  jobs

該命令會列出從該shell啓動的後臺進程。

!!!注意!!!jobs 顯示的進程號只是表示進程的執行時間上的順序並不是UNIX的進程號,我就曾經 kill 1導致系統崩潰。

3. 取消進程

kill 命令可以終止進程。 該命令的格式爲

kill PID(s)

請配合ps命令使用kill命令確定自己要kill的進程的PID號正確。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章