Linux 系統進程管理與計劃任務詳解

Linux 系統進程管理與計劃任務詳解

一、程序與進程的基本概念

  • 程序:保存在外部存儲介質中的可執行機器代碼和數據的靜態集合。
  • 進程:在CPU及內存中處于動態執行狀態的計算機程序。
  • 關系:每個程序啟動后,可創建一個或多個進程。

二、進程查看工具

1. ps(查看靜態進程信息)
  • 常用選項:

    • -a:顯示當前終端下所有進程(含其他用戶);與-x結合顯示系統所有進程。
    • -u:以用戶為主的格式輸出進程信息。
    • -x:顯示當前用戶所在終端的進程信息。
    • -e:顯示系統內所有進程。
    • -l:長格式顯示。
    • -f:完整格式顯示。

    常用aux和elf的組合

    在這里插入圖片描述

    在這里插入圖片描述

  • 輸出字段含義:

    • USER:啟動進程的用戶賬號。
    • PID:進程唯一ID號。
    • %CPU:CPU占用百分比。
    • %MEM:內存占用百分比。
    • VSZ:虛擬內存(swap)占用大小。
    • RSS:物理內存占用大小。
    • TTY:運行終端(“?”表示未知/無需終端)。
    • STAT:進程狀態(S休眠、R運行、Z僵死、<高優先級、N低優先級、s父進程、+前臺進程、L鎖內存)。
    • START:啟動時間。
    • TIME:占用CPU的時間。
    • COMMAND:啟動進程的命令名稱。
2. top(查看動態進程信息)

在這里插入圖片描述

  • 核心指標:

    • load average:CPU平均負載(1分鐘、5分鐘、15分鐘);若5/15分鐘負載超過CPU個數2倍,系統高負載。

    • task

      • total:系統當前所有進程的總數(包括所有狀態)。
      • running:正在占用 CPU 運行的進程數(處于 R 狀態)。
      • sleeping:休眠的進程數(等待事件 / 資源,如 I/O 完成,處于 SD 狀態)。
      • stopped:被暫停的進程(如通過 ctrl+z 掛起,處于 T 狀態)。
      • zombie:僵死進程(進程已終止,但父進程未回收其資源,需手動清理)。
    • %cpu

      • us(user):用戶空間進程占用 CPU 的比例(如應用程序)。若長期過高,可能是用戶程序消耗資源過多。
      • sy(system):內核空間進程占用 CPU 的比例(如系統調用、進程調度)。若過高,可能是內核頻繁處理任務(如大量 I/O 調度)。
      • ni(nice):調整過優先級的用戶進程(通過 nice 命令設置)占用 CPU 的比例。
      • id(idle):CPU 空閑的比例。若長期過低(如 < 10%),說明 CPU 負載高。
      • wa(iowait):CPU 等待 I/O 操作(如磁盤讀寫、網絡傳輸)的時間比例。若長期 > 20%,可能是 I/O 瓶頸(如磁盤慢、網絡擁堵)。
      • hi(hardware irq):硬件中斷(如鍵盤、磁盤控制器)占用 CPU 的比例。
      • si(software irq):軟件中斷(如系統定時器)占用 CPU 的比例。
      • st(steal):被虛擬化環境中其他虛擬機占用的 CPU 比例(僅在虛擬機中有效)。
    • mem

      • total:物理內存總容量(單位通常為 KB)。
      • used:已被進程實際使用的內存(不包括緩沖 / 緩存)。
      • free:完全空閑的內存(未被任何進程或緩沖 / 緩存使用)。
      • buff/cache:
        • buff:用于緩沖寫入的數據(即將寫入磁盤的臨時數據,避免頻繁磁盤 I/O)。
        • cache:用于緩存讀取的數據(從磁盤讀取過的數據,下次可直接從內存讀取,加速訪問)。
        • 這部分內存可被系統自動釋放給需要的進程,因此實際 “可用內存”≈ free + buff/cache。
    • swap

      • total:交換空間(虛擬內存)總容量(通常為磁盤上的 swap 分區 / 文件)。
      • used:已使用的交換空間(當物理內存不足時,系統會將部分不常用內存數據寫入 swap)。
      • free:空閑的交換空間。
      • avail Mem:估算的 “可用物理內存”(包括 free 內存 + 可釋放的 buff/cache,供新進程使用的內存量)。
  • 進程信息字段:

    列名含義說明
    PID進程唯一 ID(系統中唯一,可用于 kill 等命令操作進程)。
    USER進程所屬用戶(進程的創建者或運行用戶)。
    PR進程優先級(數值越小,優先級越高): - 0~39 之間(內核動態調整); - 實時優先級(-1~-20,比普通進程高)。
    NI進程的 nice 值(用戶可調整的優先級偏移量): - 范圍 -20~19(默認 0); - 數值越小,優先級越高(PR = NI + 20,便于顯示)。
    VIRT進程占用的虛擬內存總量(包括物理內存、swap、未使用的分配內存等,單位 KB)。
    RES進程實際使用的物理內存(不包括 swap,單位 KB,RES = 實際占用的物理內存)。
    SHR進程與其他進程共享的內存量(單位 KB,包括共享庫、共享數據等)。
    S進程狀態(單字母標識): - R:運行中(正在使用 CPU 或等待調度); - S:休眠(等待事件,可被喚醒); - D:不可中斷休眠(如等待磁盤 I/O,不能被信號終止); - T:停止(被 ctrl+zkill -19 暫停); - Z:僵死(進程已終止,資源未回收)。
    %CPU進程自上次刷新以來占用 CPU 的百分比(單個核心為 100%,多核心總和可超過 100%)。
    %MEM進程使用的物理內存占系統總內存的百分比。
    TIME+進程自啟動以來累計占用的 CPU 時間(精確到 0.01 秒)。
    COMMAND啟動進程的命令(按 c 可顯示完整命令路徑)。
3. 其他進程查看命令
  • pgrep -l 進程名:查看某進程的進程號和名稱(如pgrep -l systemd)。
  • pstree:查看進程樹形結構:
    • -p:同時列出PID;-u:列出用戶名;-a:列出完整命令。

三、進程控制

1. 手動啟動進程
  • 前臺啟動:默認方式(命令直接執行)。
  • 后臺啟動:命令后加&(如route &,進程放入后臺執行)。
2. 進程掛起與恢復
  • 掛起當前進程:前臺執行的命令按ctrl+z,調入后臺并停止執行。
  • 查看后臺進程jobs -l
  • 恢復運行
    • bg:后臺暫停的任務恢復后臺執行。
    • fg:后臺任務恢復到前臺執行。
3. 終止進程
  • kill 進程號:終止指定進程;-9選項強制終止(如kill -9 1234)。
  • killall 進程名:終止多個同名進程;-9強制(如killall -9 httpd)。
  • pkill:按進程名、用戶、終端等終止(-U指定用戶,-t指定終端)。

四、計劃任務

用于在指定時間/日期執行預設任務(如備份、數據采集)。

1. at(一次性任務)
  • 設置:at 時間 日期(如at 23:30 2020-11-23),輸入命令后按ctrl+d結束。
  • 示例:at 23:30 2020-11-23at> ls / > /tmp/actrl+d
  • 管理:
    • atq:查詢at任務。
    • at -c 任務號:查看任務詳情。
    • atrm 任務號:刪除任務。
2. crontab(周期性任務)
  • 配置文件:
    • 系統任務:/etc/crontab
    • 用戶任務:/var/spool/cron/(按用戶名存儲)。
  • 時間格式:分 時 日 月 周(空格分隔)。
  • 常用選項:
    • -e:編輯計劃任務。
    • -u 用戶名:指定用戶(如crontab -u natasha -e)。
    • -l:查詢任務列表。
    • -r:刪除任務列表。
  • 示例:
    1. 為用戶natasha配置每天14:23執行/bin/echo "RHCSA",僅允許natasha和root創建任務:
      useradd natasha
      crontab -u natasha -e  
      輸入:23 14 * * * /bin/echo "RHCSA"
      vim /etc/cron.allow  創建白名單只允許natasha和root創建任務
      寫入:root、natasha
      systemctl restart crond && systemctl enable crond
      
    2. 每月1~5號14:00-17:00,每10分鐘執行/bin/echo "I Love Galaxy"
      crontab -e  # 輸入:*/10 14-17 1-5 * * /bin/echo "I Love Galaxy"
      systemctl restart crond && systemctl enable crond
      
    3. 周一至周五8:00-21:00,每2分鐘將當前時間附加到/home/galaxy/my_first_cron_job.txt
      crontab -e  # 輸入:*/2 8-21 * * 1-5 date >> /home/galaxy/my_first_cron_job.txt

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/91256.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/91256.shtml
英文地址,請注明出處:http://en.pswp.cn/web/91256.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【圖像處理】直方圖均衡化c++實現

直方圖均衡化是一種通過調整圖像像素灰度值分布&#xff0c;來增強圖像對比度的經典數字圖像處理技術。其核心在于將原始圖像的灰度直方圖從集中的某個區間“拉伸”或“均衡”到更廣泛的區間&#xff0c;讓圖像的明暗細節更清晰&#xff0c;關鍵在于利用累積分布函數實現灰度值…

Web前端實戰:Vue工程化+ElementPlus

1.Vue工程化 1.1介紹 模塊化&#xff1a;將js和css等&#xff0c;做成一個個可復用模塊組件化&#xff1a;我們將UI組件&#xff0c;css樣式&#xff0c;js行為封裝成一個個的組件&#xff0c;便于管理規范化&#xff1a;我們提供一套標準的規范的目錄接口和編碼規范&#xff0…

ECMAScript2021(ES12)新特性

概述 ECMAScript2021于2021年6月正式發布&#xff0c; 本文會介紹ECMAScript2021(ES12)&#xff0c;即ECMAScript的第12個版本的新特性。 以下摘自官網&#xff1a;ecma-262 ECMAScript 2021, the 12th edition, introduced the replaceAll method for Strings; Promise.any,…

Tlias 案例-整體布局(前端)

開發流程前端開發和后端開發是一樣的&#xff0c;都需要閱讀接口文檔。 準備工作&#xff1a; 1&#xff1a;導入項目中準備的基礎過程到 VsCode。2&#xff1a;啟動前端項目&#xff0c;訪問該項目3&#xff1a;熟悉一下基本的布局<script setup></script><tem…

三十二、【Linux網站服務器】搭建httpd服務器演示虛擬主機配置、網頁重定向功能

httpd服務器功能演示一、虛擬主機配置虛擬主機技術全景虛擬主機目錄規范1. 基于端口的虛擬主機&#xff08;8080/8081&#xff09;2. 基于IP的虛擬主機&#xff08;192.168.1.100/192.168.1.101&#xff09;3. 基于域名的虛擬主機&#xff08;site1.com/site2.com&#xff09;二…

串行化:MYSQL事務隔離級別中的終極防護

在現代應用程序中&#xff0c;數據的一致性和可靠性至關重要。想象一下&#xff0c;如果在一個銀行系統中&#xff0c;兩個用戶同時試圖轉賬到同一個賬戶&#xff0c;最終的數據結果可能會出乎意料。為了避免這種情況&#xff0c;MYSQL提供了不同的事務隔離級別&#xff0c;其中…

RAG:檢索增強生成的范式演進、技術突破與前沿挑戰

1 核心定義與原始論文 RAG&#xff08;Retrieval-Augmented Generation&#xff09;由Facebook AI Research團隊于2020年提出&#xff0c;核心思想是將參數化記憶&#xff08;預訓練語言模型&#xff09;與非參數化記憶&#xff08;外部知識庫檢索&#xff09;結合&#xff0c…

2024年藍橋杯Scratch10月圖形化stema選拔賽真題——旋轉的圖形

旋轉的圖形編程實現旋轉的圖形。具體要求1&#xff09;點擊綠旗&#xff0c;在舞臺上出現滑桿形式的變量 r&#xff0c;取值范圍為-1、0、1&#xff0c;默認值為 0&#xff0c;如圖所示&#xff1b;2&#xff09;1秒后&#xff0c;在舞臺上繪制出一個紅色正方形&#xff08;邊長…

【音視頻】WebRTC 開發環境搭建-Web端

一、開發環境搭建 1.1 安裝vscode 下載VSCode&#xff1a;https://code.visualstudio.com/&#xff0c;下載后主要用于開發Web前端頁面&#xff0c;編寫前端代碼 安裝完成后下載Live Server插件&#xff0c;用于本地開發&#xff0c;實時加載前端頁面 1.1.1 前端代碼測試 下…

力扣54:螺旋矩陣

力扣54:螺旋矩陣題目思路代碼題目 給你一個 m 行 n 列的矩陣 matrix &#xff0c;請按照 順時針螺旋順序 &#xff0c;返回矩陣中的所有元素。 思路 思路很簡單創建一個二維數組然后按照箭頭所示的順序一層一層的給二維數組相應的位置賦值即可。難點是我們是一層一層的賦值…

【CSS】設置表格表頭固定

1.設置thead樣式在thead元素中增加樣式&#xff1a;position: sticky;top: 0;2.設置table樣式在table元素中增加樣式&#xff1a;border-collapse: separate; /* 分離邊框模式 */ border-spacing: 0;3.設置表頭偽元素樣式增加樣式&#xff1a;th::after {content: ;position: a…

Baumer工業相機堡盟工業相機如何通過YoloV8深度學習模型實現標簽條碼一維碼的檢測(C#代碼,UI界面版)

Baumer工業相機堡盟工業相機如何通過YoloV8深度學習模型實現標簽條碼一維碼的檢測&#xff08;C#代碼&#xff0c;UI界面版&#xff09;&#xff09;工業相機使用YoloV8模型實現標簽條碼一維碼的檢測工業相機通過YoloV8模型實現標簽條碼的檢測的技術背景在相機SDK中獲取圖像轉換…

如何編寫好的測試用例?

&#x1f345; 點擊文末小卡片 &#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快對于軟件測試工程師來說&#xff0c;設計測試用例和提交缺陷報告是最基本的職業技能。是非常重要的部分。一個好的測試用例能夠指示測試人員如何對軟件進行測試。在…

《Java 程序設計》第 12 章 - 異常處理

大家好&#xff01;今天我們來學習《Java 程序設計》中的第 12 章 —— 異常處理。在編程過程中&#xff0c;錯誤和異常是不可避免的。一個健壯的程序必須能夠妥善處理各種異常情況。本章將詳細介紹 Java 中的異常處理機制&#xff0c;幫助大家編寫出更穩定、更可靠的 Java 程序…

STM32CubeIDE新建項目過程記錄備忘(二) GPIO輸出demo:LED閃爍

利用前面創建好的基礎模板項目文件&#xff0c;創建第一個應用項目&#xff0c;單片機的hello world&#xff1a;LED閃爍。打開模板文件文件--從文件系統中打開項目&#xff1a;在彈出的窗口中選擇之前創建的模板項目文件并打開。復制粘貼新項目 在項目管理器&#xff0c;復制之…

HTML基礎P2 | JS基礎講解

什么是JS JS是一個網頁的腳本語言&#xff0c;你可以理解為在HTML中寫類似于JAVA等高級編程語言的代碼&#xff0c;使得網頁可以實現一些包含邏輯處理的交互操作 簡單上手例子 接下來&#xff0c;給大家一個簡單的小例子來感受一下 <!DOCTYPE html> <html lang&qu…

QT筆記(2)——vscode + CMAKE + qtcreate的操作方式

1.vscode 下載cmake&#xff0c;clangd&#xff0c;qtConfigure&#xff0c;cmake tool的相關插件支持 2. qtConfigure插件配置 根據自己下載的qt目錄下尋找如圖的相關工具 3. qt環境變量配置 在系統變量的path中添加qt編譯需要的環境變量。 4.下載Cmake支持 CMake下…

sed編程入門

一.sed是啥sed&#xff08;流編輯器&#xff0c;Stream Editor&#xff09;是 Unix/Linux 系統中強大的文本處理工具&#xff0c;常用于對文本進行替換、刪除、插入、追加等操作。它逐行處理輸入文本&#xff0c;并根據提供的腳本命令修改文本&#xff0c;最后輸出結果。二.基本…

知識速查大全:python面向對象基礎

目錄 一、面向對象的基本概念 二、類和對象 1.類 2.對象 三、屬性&#xff08;數據&#xff09;和方法 1.數據 1.1.實例數據 1.2.類數據 2.方法 2.1.實例方法 2.2.類方法 3.數據和方法的綜合使用 四、面向對象三大特性 1.封裝 2.繼承 2.1.單繼承 2.2.多繼承 2.3.混合類 2.4.方法…

Linux系統編程Day1-- 免費云服務器獲取以及登錄操作

一、 學生黨如何“白嫖”或免費使用云服務器&#xff1f; 作為學生黨&#xff0c;資金有限的情況下確實不容易長期負擔服務器費用。但好消息是&#xff0c;有多種方式可以“白嫖”或低成本使用云服務器&#xff0c;尤其是針對學生身份、學習用途和開發者計劃。 1、使用各大云平…