Linux中的作業和作業控制


簡介

在Linux作業系統中,作業是指在後臺或前臺執行的程序。作業控制是指操縱這些程序的能力,包括掛起、恢復和終止它們。這對於管理多個任務或除錯程序問題非常有用。

作業控制由shell實現,shell是一個命令列介面,允許使用者與作業系統互動。Linux中最常用的shell是Bourne Again Shell (BASH),但其他shell,如Z Shell (ZSH)和Korn Shell (KSH)也可用。

在本文中,我們將探討Linux作業控制的基礎知識以及如何使用它來管理程序。

理解Linux中的程序和作業

在Linux中,每個正在執行的程式都被認為是一個程序。一個程序可以是一個獨立的程式,也可以是更大程式的一部分。

每個程序都被分配一個唯一的識別符號,稱為程序ID (PID)PID可以用來引用程序並對其執行操作,例如掛起或終止它。

作業是在前臺或後臺執行的程序。前臺是終端中的活動視窗,後臺是正在執行但未在終端中積極使用的任何程序。

預設情況下,當您在終端中執行命令時,它會在前臺執行。您可以透過它顯示輸出以及在它完成之前您無法輸入更多命令來判斷程序是否在前臺執行。

要在後臺執行程序,可以在命令末尾使用&符號。

示例

$ sleep 30 &
[1] 12345

在這個例子中,sleep命令使程序休眠30秒。&符號使程序在後臺執行,輸出[1] 12345表示它是作業號為1,PID為12345的作業。

使用fg和bg命令管理作業

fg(前臺)和bg(後臺)命令允許您在前景和後臺之間移動作業。

要將後臺作業調到前臺,可以使用fg命令後跟作業號或PID。

示例

$ fg %1
sleep 30

這將把作業號為1的sleep命令調到前臺並顯示其輸出。

要將前臺作業傳送到後臺,可以使用bg命令後跟作業號或PID。

示例

$ sleep 30
[1] 12345
^Z
[1]+ Stopped      sleep 30
$ bg %1
[1]+ sleep 30 &

在這個例子中,sleep命令在前臺執行,然後使用^Z鍵盤快捷鍵掛起。然後使用bg命令在後臺恢復作業。

掛起或恢復Linux中的作業

suspend命令允許您暫時停止作業,而kill命令允許您永久終止作業。

要掛起作業,可以使用suspend命令後跟作業號或PID。

示例

$ sleep 30 &
[1] 12345
$ suspend %1
[1]+ Suspended

這將掛起作業號為1的sleep命令。然後可以使用fg命令恢復作業,或將其保留在後臺掛起狀態。

要終止作業,可以使用kill命令後跟作業號或PID。

示例

$ sleep 30 &
[1] 12345
$ kill %1

這將終止作業號為1的sleep命令。

使用jobs和ps命令檢視和管理作業

jobs命令允許您檢視當前shell中所有在後臺執行或掛起的作業的列表。ps命令允許您檢視系統上所有正在執行的程序的列表。

示例

$ sleep 30 &
[1] 12345
$ sleep 60 &
[2] 12346
$ jobs
[1] Running    sleep 30 &
[2] Running    sleep 60 &

您可以使用jobs命令檢視每個作業的狀態及其作業號或PID。

ps命令允許您檢視系統上當前正在執行的所有程序的列表。您可以使用-a標誌顯示所有程序,使用-x標誌顯示與終端無關的程序。

示例

$ ps -ax
   PID TTY   STAT    TIME COMMAND
      1 ?    Ss      0:00 /sbin/init
      2 ?    S       0:00 [kthreadd]
      3 ?    S       0:00 [ksoftirqd/0]
      4 ?    S       0:00 [kworker/0:0]
...

ps命令顯示每個程序的PID、終端(TTY)、狀態、時間和命令。

結論

在Linux中,作業控制允許您管理系統上正在執行的程序。您可以使用fg、bg、suspendkill等命令來操作作業,並使用jobsps命令來檢視和管理它們。理解和使用這些命令可以幫助您有效地管理系統和排除問題。

更新於:2023年4月5日

5K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.