首頁 運維 linux運維 linux中進程什麼意思

linux中進程什麼意思

Nov 30, 2021 pm 04:19 PM
linux 行程

進程是運行在Linux中的程式的一個實例,是管理事務的基本單元;進程擁有自己獨立的處理環境和系統資源。進程的狀態是變化的,其包括進程的創建、調度和消亡。

linux中進程什麼意思

本教學操作環境:linux5.9.8系統、Dell G3電腦。

進程是運行在 Linux 中的程式的一個實例。

在 Linux 系統中,作業系統是透過進程去完成一個一個的任務,而進程是管理事務的基本單元。進程擁有自己獨立的處理環境(如:目前需要用到哪些環境變量,程式運行的目錄在哪,目前是哪個用戶在執行此程式等)和系統資源(如:處理器CPU 佔用率、記憶體、I /O設備、資料、程式)。

當你在 Linux 系統中執行一個程式時,系統會為這個程式建立特定的環境。這個環境包含系統運作這個程式所需的任何東西。

每當你在 Linux 中執行一個命令,它都會創建,或啟動一個新的進程。例如,當你嘗試執行指令「ls -l」來列出目錄的內容時,你就啟動了一個進程。如果有兩個終端視窗顯示在螢幕上,那麼你可能運行了兩次同樣的終端程序,這時會有兩個終端進程。

每個終端機視窗可能都運行了一個 Shell,每個運行的 Shell 都分別是一個進程。當你從 Shell 呼叫一個命令時,對應的程式就會在一個新進程中執行,當這個程式的進程執行完成後,Shell 的進程就會恢復運行。

作業系統透過被稱為 PID 或進程 ID 的數位編碼來追蹤進程。系統中的每一個行程都有一個唯一的 PID。

現在我們透過一個實例來了解 Linux 中的進程。我們在Shell 命令列下執行以下命令:

$ sleep 10 &
[1] 3324
登入後複製

因為程式會等待10 秒,所以我們快速地在目前Shell 上尋找任何進程名為sleep 的進程:

$ ps -ef | grep sleep
mozhiyan  3324  5712  cons1  17:11:46  /usr/bin/sleep
登入後複製

我們看到進程名為/usr/bin/sleep 的進程正運行在系統中(其PID 與我們在上一命令中得到的PID 相同)。

現在,我們嘗試並行地從3 個不同的終端視窗執行上述的sleep 命令,上述命令的輸出將類似如下所示:

$ ps -ef | grep sleep
mozhiyan  896   5712  cons1  17:16:51  /usr/bin/sleep
mozhiyan  5924  5712  cons1  17:16:52  /usr/bin/sleep
mozhiyan  2424  5712  cons1  17:16:50  /usr/bin/sleep
登入後複製

我們看到sleep 程式的每一個實例都創建了一個單獨的進程。

每個 Linux 行程還有另一個 ID 號碼,也就是父行程的 ID(ppid)。系統中的每一個使用者進程都有一個父進程。

指令「ps -f」就會列出進程的 PID 和 PPID。此命令的輸出類似如下所示:

$ ps -f
   UID     PID   PPID    TTY       STIME      COMMAND
mozhiyan  4124   228    cons0    21:37:09   /usr/bin/ps
mozhiyan   228   1      cons0    21:32:23   /usr/bin/bash
登入後複製

你在 Shell 命令列提示字元下執行的命令都把目前 Shell 的進程當作父進程。例如,你在 Shell 命令列提示字元下輸入 ls 指令,Shell 將執行 ls 指令,此時 Linux 核心會複製 Shell 的記憶體頁,然後執行 ls 指令。

在 Unix 中,每一個進程是使用 fork 和 exec 方法建立的。然而,這種方法會導致系統資源的損耗。

在Linux 中,fork 方法是使用寫時拷貝記憶體頁實現的,所以它導致的僅是時間和複製父進程的記憶體頁表所需的記憶體的損失,並且會為子進程創建一個唯一的任務結構。

寫入時拷貝模式在建立新進程時避免了建立不必要的結構拷貝。例如,使用者在Shell 命令列提示符號下輸出ls 指令,Linux 核心將會建立一個Shell 的子程序,也就是Shell 的程序是父進程,而ls 指令的行程是子程序,ls 指令的程序會指向與此Shell 相同的記憶體頁,然後子程序使用寫入時拷貝技術執行ls 指令。

進程的狀態

每個 Linux 行程都有它自己的生命週期,例如,建立、執行、結束和清除。每個進程也都有各自的狀態,顯示進程中目前正發生什麼。進程的狀態是變化的,其包括進程的創建、調度和消亡。

程序可以有以下幾種狀態:

  • D(不可中斷休眠狀態)-程序正在休眠且無法恢復,直到一個事件發生為止。

  • R(運行狀態)-進程正在運行。

  • S(休眠狀態)-進程沒有在運行,而在等待一個事件或是訊號。

  • T(停止狀態)-程序被訊號停止,例如,訊號 SIGINT 或 SIGSTOP。

  • Z(僵死狀態)-標記為 的進程是僵死的進程,它們之所以殘留是因為它們的父進程適當地銷毀它們。如果父程序退出,這些程序將被 init 程序銷毀。

若要查看指定進程的狀態,可以使用如下指令:

ps -C processName -o pid=,cmd,stat
登入後複製

例如:

$ ps -C sleep -o pid=,cmd,stat
      CMD       STAT
9434 sleep 20    S
登入後複製

相關推薦:《Linux視頻教程

以上是linux中進程什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

vscode終端使用教程 vscode終端使用教程 Apr 15, 2025 pm 10:09 PM

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

vscode終端命令不能用 vscode終端命令不能用 Apr 15, 2025 pm 10:03 PM

VS Code 終端命令無法使用的原因及解決辦法:未安裝必要的工具(Windows:WSL;macOS:Xcode 命令行工具)路徑配置錯誤(添加可執行文件到 PATH 環境變量中)權限問題(以管理員身份運行 VS Code)防火牆或代理限制(檢查設置,解除限制)終端設置不正確(啟用使用外部終端)VS Code 安裝損壞(重新安裝或更新)終端配置不兼容(嘗試不同的終端類型或命令)特定環境變量缺失(設置必要的環境變量)

See all articles