深度講解Unix操作系統程指
Unix操作系統中的進程指的是一個具有特定功能的程序,它可以和其他程序共享對某個數據集合的操作。進程被應用程序創建之后,在獲得資源時運行。如果得不到資源,就暫時停止直到獲得其所需要的資源。進程完成后消忙。故進程與普通程序仍然有所差別。
把前臺進程移動到后臺去進行
有時候出于某些特定的需要,系統工程師可能要把某些在前臺運行的進程放入到后臺去運行。一個比較感性的例子,就如殺毒軟件。全盤殺毒需要比較長的時間。若哪個殺毒的窗口老是用戶眼前晃的話,讓人很不舒服。為此系統工程師就需要考慮把這個前臺正在運行的進程放入到后臺運行。在Unix操作系統中,這個功能經常用到。如工程師可能讓系統每天在一個固定的時刻對Home用戶文件夾進行備份。
為了避免對用戶的干擾,可以把這個備份進程放在后臺執行。故Unix操作系統工程師要掌握把前臺進程放入到后臺執行、把后臺作業調入到前臺等等相關操作,并能夠排除由此產生的一些錯誤。這也是Unix操作系統高級工程師考試時的必備考點之一。
1、如何把前臺作業移動到后臺?
如果為了在運行進程時可以進行其他工作,工程師可以讓某個進程在后臺執行。注意如果把進程放入到后臺運行,則系統當前運行的shell會給這個進程分配一個作業號。注意,由于作業號不是操作系統分配的,而是shell分配的,故它只代表了后臺運行的活動進程。最要命的是,它在操作系統中并不是唯一的。
若要把一個正在執行的進程放入到后臺,則首先需要把正在執行的進程掛起。系統工程師若要把正在執行的進程掛起的話,可以采用掛起鍵。工程師可以在進程執行過程中,暫停他的執行過程,并在以后繼續執行。
這個操作在Unix操作系統中叫做掛起。通稱情況下,系統工程師之能夠掛起一個當前shell下的作業(不過這對系統工程師來說已經足夠了)。掛起作業的方法主要有兩種,一是按CTRL+Z鍵,二是按系統當前定義的掛起建。把進程掛起后再使用bg命令把掛起的進程放入到后臺運行。這個命令的格式為,bg % 進程標示號或者作業號、命令名等等。筆者這里建議是采用進程的標識號,而不是作業號。因為作業號在系統中并不唯一。故可能會引發一些誤操作。
2、如何把后臺作業移動到前臺?
有時候管理員需要把后臺進程移動到前臺。如系統工程師發現后臺進程遲遲沒有完成,懷疑這個進程有問題,需要手工關閉它。通常情況下,系統工程師是無法強制關閉后臺進程的。若要關閉后臺進程,必須先把后臺進程移動到前臺,然后再用關閉進程命令關閉。也就是說,為了中斷一個后臺作業,可以先把它移動到前臺,然后再使用前臺中的中斷控制進程指令來實現。
把后臺進程作業移動到前臺的命令是fg,后接%標志,然后指名進程標識號或者命名命名、作業號等等。在執行這個命令的時候,筆者說明兩點。一是把后臺作業移動到前臺與把前臺作業移動到后臺有一個顯著的區別。就是把后臺作移動到前臺不用把后臺正在執行的進程移動到前臺。換句話說,在后臺執行的進程系統工程師無法進行干預。即無法殺死進程,也無法掛起進程。
除非等著進程自動執行完畢,否則的話工程師對于后臺的進程無能為力。二是由于作業號在系統中不唯一,故利用作業號來管理后臺進程并不是很好的方法。如現在恰巧有兩個作業號相同的后臺進程,那么當Unix操作系統工程師要把某個作業號的進程掉到前臺運行的時候,系統就不知道到底要調哪一個了。故筆者是建議大家通過唯一的進程標識號來管理后臺進程。
3、如何查看正在運行的作業?
當系統工程師發現把進程放入后臺后遲遲沒有反應,就會擔心是否哪里出了問題,就需要查看當前進程的工作狀態。此時系統工程師可以通過jobs命令顯示當前進程的工作狀態。通常情況下,顯示進程的狀態主要為運行、中斷、等待輸入或者停止。如果進程的狀態為后面三種,則系統工程師就要把它們調入到前臺,來分析進程遇到的問題。
這次,關于Unix操作系統把前臺進程移動到后臺去進行的教學就到這里了。
【編輯推薦】