進程 (Processes) | Linux

Linux 中, 進程(Processes) 是系統運行的程序的實例。每個進程都是由一個或多個執行緒組成,它們在系統上運行,執行各種任務和操作。 Linux 作業系統使用進程作為管理和執行任務的基本單位。

以下是有關 Linux 進程的一些重要概念:

  1. 進程 ID(Process ID,PID): 每個進程都有一個唯一的標識符,稱為進程 ID。PID 是用來識別和操作進程的數字。
  2. 父進程和子進程: 在 Linux 中,進程可以產生其他進程,這樣的進程稱為父進程,而新產生的進程稱為子進程。父進程和子進程之間可以進行通信。
  3. 進程狀態: 進程可以處於不同的狀態,包括運行中、等待、停止、殺死等。這些狀態反映了進程在系統中的運行狀態。
  4. 進程優先級: 進程的優先級決定了它在 CPU 上運行的順序。優先級較高的進程優先獲得 CPU 資源。
  5. 進程組: 進程可以組成進程組,這是一組相關聯的進程。這樣的組織方式使得進程可以更方便地協同工作和通信。
  6. 前台和後台進程: 前台進程是當前正在與用戶互動的進程,而後台進程在背景運行,不需要用戶直接參與。
  7. 殭屍進程: 當一個進程結束運行,但其父進程還沒有回收其資源時,該進程變成殭屍進程。殭屍進程的存在是不良的,因為它們占用系統資源。
  8. 進程優先級: 進程優先級是一個數值,用於表示進程在 CPU 上的執行優先順序。較高優先級的進程優先獲得 CPU 資源。

在 Linux 中,你可以使用一些常見的命令來查看和操作進程,例如:

我們可以使用 & 來讓程序變成背景執行

sleep 10 &

我們可以使用kill -9 來殺死進程

kill -9 <PID>
kill -SIGKILL <PID>

查看系統中每個人在使用的進程

ps aux

其他常見操作

# 我們執行一個進程
sleep 1000
# 然我們使用Ctrl + Z(suspended process)
# Ctrl + C 會殺死進程

# 一開始就使用背景執行
sleep 1000 &

# 顯示我們所有背景執行程式
jobs

# 我們來讓剛才的進程重新恢復運行
zsh  => bg %<job id>
bash => bg <job id>

# 我們可以再一次進去該進程的交互介面中
zsh  => fg %<job id>
bash => fg <job id> 
  • ps: 顯示系統中運行的進程列表。
  • top: 實時顯示系統資源和進程信息。
  • kill: 用於終止指定進程。
  • nice: 用於調整進程的優先級。
  • killall: 用於終止指定名稱的所有進程。

這些命令使得管理和監視系統中的進程變得方便。