進程 (Processes) | Linux
在 Linux 中, 進程(Processes) 是系統運行的程序的實例。每個進程都是由一個或多個執行緒組成,它們在系統上運行,執行各種任務和操作。 Linux 作業系統使用進程作為管理和執行任務的基本單位。
以下是有關 Linux 進程的一些重要概念:
- 進程 ID(Process ID,PID): 每個進程都有一個唯一的標識符,稱為進程 ID。PID 是用來識別和操作進程的數字。
- 父進程和子進程: 在 Linux 中,進程可以產生其他進程,這樣的進程稱為父進程,而新產生的進程稱為子進程。父進程和子進程之間可以進行通信。
- 進程狀態: 進程可以處於不同的狀態,包括運行中、等待、停止、殺死等。這些狀態反映了進程在系統中的運行狀態。
- 進程優先級: 進程的優先級決定了它在 CPU 上運行的順序。優先級較高的進程優先獲得 CPU 資源。
- 進程組: 進程可以組成進程組,這是一組相關聯的進程。這樣的組織方式使得進程可以更方便地協同工作和通信。
- 前台和後台進程: 前台進程是當前正在與用戶互動的進程,而後台進程在背景運行,不需要用戶直接參與。
- 殭屍進程: 當一個進程結束運行,但其父進程還沒有回收其資源時,該進程變成殭屍進程。殭屍進程的存在是不良的,因為它們占用系統資源。
- 進程優先級: 進程優先級是一個數值,用於表示進程在 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: 用於終止指定名稱的所有進程。
這些命令使得管理和監視系統中的進程變得方便。
Tags