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

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

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

  • 程序:保存在外部存儲介質中的可執行機器代碼和數據的靜態集合,是靜態的文件實體
  • 進程:在 CPU 及內存中處于動態執行狀態的計算機程序,是程序的動態執行實例
  • 關聯關系:每個程序啟動后可創建一個或多個進程,進程隨程序啟動而產生,隨執行結束而消亡

二、進程查看工具

1. ps:查看靜態進程信息

用于捕捉某一時刻的進程快照,常用選項及功能如下:

選項組合功能描述
-a顯示當前終端下的所有進程(包括其他用戶)
-u以用戶為主的格式輸出進程信息
-x顯示當前用戶所在終端的進程信息(與-a結合顯示系統所有進程)
-e顯示系統內所有進程信息
-l以長格式顯示進程信息
-f以完整格式顯示進程信息

ps輸出字段說明

字段含義
USER啟動進程的用戶賬號名稱
PID進程在系統中的唯一數字 ID 號
%CPUCPU 占用百分比
%MEM內存占用百分比
VSZ占用虛擬內存(swap 空間)的大小
RSS占用常駐內存(物理內存)的大小
TTY進程運行的終端(“?” 表示未知或無需終端)
STAT進程狀態(S 休眠、R 運行、Z 僵死、< 高優先級、N 低優先級等)
START進程啟動時間
TIME進程占用 CPU 的時間
COMMAND啟動進程的命令名稱

2. top:查看進程動態信息

實時監控進程資源占用,動態刷新進程狀態(默認 3 秒 / 次),核心信息如下:

(1)系統負載信息
  • load average:CPU 平均負載,依次為 1 分鐘、5 分鐘、15 分鐘內的平均值。若 5 分鐘或 15 分鐘負載值超過 CPU 核心數的 2 倍,系統處于高負載狀態
(2)進程狀態統計(task)
狀態含義
total總進程數
running正在運行的進程數
sleeping休眠狀態的進程數
stopped停止狀態的進程數
zombie僵死狀態的進程數
(3)CPU 占用信息(% cpu)
指標含義
us用戶進程占用 CPU 時間的百分比
sy系統進程占用 CPU 時間的百分比
ni優先級調整后的用戶進程占用 CPU 百分比
id空閑 CPU 的百分比
waI/O 等待占用 CPU 時間的百分比
hi硬件中斷占用 CPU 時間的百分比
si軟件中斷占用 CPU 時間的百分比
st虛擬化環境中被占用的 CPU 時間百分比
(4)進程詳細字段(top輸出)
字段含義
PID進程 ID
USER進程屬主名稱
PR進程優先級
NI進程 nice 值(-20~+19,值越小優先級越高)
VIRT占用虛擬內存總量(kb)
RES占用物理內存總量(kb)
SHR與其他進程共享的內存總量(kb)
S進程狀態(D 不可中斷休眠、R 運行、S 休眠、T 停止、Z 僵死)
%CPU進程使用 CPU 的百分比
%MEM進程使用內存的百分比
TIME+進程啟動后占用的 CPU 總時間
COMMAND啟動進程的命令名稱

3. 其他進程查看工具

  • pgrep -l 進程名:查看某一進程的進程號和名稱(例:pgrep -l systemd

  • pstree
    

    :查看進程樹形結構,常用選項:

    • -p:同時列出對應 PID
    • -u:列出對應用戶名
    • -a:列出完整命令信息

三、進程控制方法

1. 手動啟動進程

  • 前臺啟動:直接執行命令(如ls),進程占用當前終端
  • 后臺啟動:命令后加&(如route &),進程在后臺執行,不阻塞終端

2. 進程掛起與恢復

操作命令 / 快捷鍵功能
掛起前臺進程Ctrl+Z將當前運行的前臺進程調入后臺并停止執行
查看后臺進程jobs -l顯示后臺進程列表(含進程號和狀態)
恢復后臺進程(后臺運行)bg 任務號使后臺暫停的進程繼續在后臺執行
恢復后臺進程(前臺運行)fg 任務號將后臺進程調回前臺執行

3. 終止進程

命令格式適用場景
killkill 進程號正常終止指定 PID 的進程
kill -9kill -9 進程號強制終止無法正常結束的進程(慎用)
killallkillall 進程名終止所有同名進程(如killall httpd
pkillpkill -U 用戶名/pkill -t 終端根據用戶或終端終止特定進程

四、計劃任務設置

1. at:一次性任務

  • 設置任務:

    at 23:30 2020-11-23  # 指定執行時間
    at> ls / > /tmp/a     # 輸入要執行的命令
    at> <Ctrl+D>          # 按Ctrl+D確認
    
  • 任務管理:

    • atq:查詢待執行的 at 任務
    • at -c 任務號:查看任務具體內容
    • atrm 任務號:刪除指定 at 任務

2. crontab:周期性任務

(1)核心配置
  • 系統配置文件/etc/crontab(系統級任務)
  • 用戶任務存放目錄/var/spool/cron/(用戶級任務)
  • 時間格式:分、時、日、月、周(支持通配符:*任意值、*/n每隔 n 單位、-范圍、,列表)
(2)常用命令
命令功能
crontab -e編輯當前用戶的周期性任務
crontab -u 用戶名 -e編輯指定用戶的周期性任務
crontab -l查看當前用戶的任務列表
crontab -r刪除當前用戶的所有任務
(3)權限控制
  • 通過/etc/cron.allow(允許創建任務的用戶列表)和/etc/cron.deny(禁止創建任務的用戶列表)限制權限
  • /etc/cron.allow中列出的用戶可創建任務(默認優先于cron.deny

五、計劃任務示例解析

示例 1:為用戶 natasha 配置每日定時任務

需求:每天 14:23 執行/bin/echo "RHCSA",僅允許 natasha 和 root 創建計劃任務
步驟

  1. 創建用戶:useradd natasha

  2. 配置任務:

    crontab -u natasha -e
    

    ,添加內容:

    23 14 * * * /bin/echo "RHCSA"
    
  3. 限制權限:編輯

    /etc/cron.allow
    

    ,添加:

    root
    natasha
    
  4. 重啟服務:

    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  # 添加任務(注意用>>追加內容)
systemctl restart crond
systemctl enable crond

六、注意事項

  1. crontab任務中建議使用命令絕對路徑(如/bin/date),避免環境變量問題
  2. 追加內容用>>,覆蓋內容用>,根據需求選擇
  3. 修改計劃任務后需重啟crond服務(systemctl restart crond)使其生效
  4. 僵死進程(Z 狀態)需及時用kill -9手動終止,避免資源占用

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

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

相關文章

分層解耦(Controller,Service,Dao)

1. 三層架構核心職責層級職責說明關鍵技術 / 注解Controller&#xff08;控制器&#xff09;1. 接收前端請求&#xff08;HTTP&#xff09; 2. 封裝參數、校驗 3. 調用 Service 處理業務 4. 返回視圖 / 數據給前端Controller、GetMapping等Service&#xff08;業務層&#xff0…

鎂金屬接骨螺釘注冊檢測:骨科植入安全的科學基石

在骨科治療領域&#xff0c;鎂金屬接骨螺釘憑借其可降解性與生物相容性&#xff0c;成為傳統金屬植入物的革新替代方案。然而&#xff0c;作為Ⅲ類高風險無源植入器械&#xff08;分類編碼13-01-01&#xff09;&#xff0c;其注冊檢測需覆蓋生物相容性、化學表征、降解性能、力…

模具開發和管理系統(c#)

以前編寫的一個管理模具開發和進度的程序&#xff0c;可以跟蹤模具開發進度&#xff0c;可以查詢模具具體情況&#xff0c;也可以用水晶報表查詢。OS&#xff1a;microsoft windows IDE&#xff1a;microsoft visual studio programming language&#xff1a;C# DataBase&#…

【WRF-Chem 實例1】namelist.input 詳解- 模擬CO2

目錄 &time_control(時間控制) &physics(物理過程參數化方案) &fdda(四維數據同化) 工作機制簡述 &dynamics(WRF 動力核心的數值方法和選項) &bdy_control(邊界控制設置) &chem(WRF-Chem 主要化學設置) &namelist_quilt(并行 I/O 控制…

數據中心-時序數據庫InfluxDB

目錄 一、InfluxDB介紹 1.1 什么是InfluxDB&#xff1f; 1.2 應用場景 1.3 特點 1.4 版本差異 二、數據模型和存儲架構 2.1 相關概念 2.2 存儲架構 三、InfluxDB基礎操作 3.1 數據庫操作 3.2 數據表操作 顯示所有表 新建表 刪除表 3.3 數據保存策略 查看保存策…

webpack-高級配置

多入口文件 如何輸出多個html文件 輸入位置 需要寫兩個entryoutput位置也要改一下 加一個name避免重名 在生成html時 要根據每一個入口都寫一個插件 并且chunks要寫好 當前html引入哪些文件如何抽離壓縮css文件 安裝插件在rules里面添加插件plugins中添加css抽離代碼壓縮css抽離…

WinForm組件之Label 控件

Label 控件Label 控件是 WinForm 中最基礎、最常用的控件之一&#xff0c;主要用于在界面上顯示文本信息&#xff0c;通常作為說明、提示或標題&#xff0c;不直接接受用戶輸入。它是構建用戶界面的基礎組件&#xff0c;在引導用戶操作、展示狀態信息等方面發揮重要作用。Label…

鴻蒙中相冊權限彈窗

model.json5配置權限{"name": ohos.permission.READ_MEDIA,"reason":"$string:permission_reason_IMG","usedScene": {}}ui使用const url albumClass.onRequestCameraPermission()類import { abilityAccessCtrl, common, PermissionR…

智能車輛熱管理測試方案——提升效能與保障安全

車輛熱管理在能源危機出現、汽車排放法規日益嚴格以及人們對汽車舒適性要求更高的背景下應運而生。將各個系統或部件如冷卻系統、潤滑系統和空調系統等集成一個有效的熱管理系統&#xff1b;控制和優化車輛的熱量傳遞過程&#xff0c;保證各關鍵部件和系統良好運行&#xff1b;…

如何提升 TCP 傳輸數據的性能?詳解

TCP 會保證每一個報文都能夠抵達對方&#xff0c;它的機制是這樣&#xff1a;報文發出去后&#xff0c;必須接收到對方返回的確認報文 ACK&#xff0c;如果遲遲未收到&#xff0c;就會超時重發該報文&#xff0c;直到收到對方的 ACK 為止 所以&#xff0c;TCP 報文發出去后&…

WiFi連接簡單流程

WiFi連接流程與Debug方法一、WiFi連接全流程與詳細日志解讀 WiFi連接是一個多階段、跨層次的復雜過程&#xff0c;涉及物理層、鏈路層、網絡層和應用層的多種協議協作。整個流程包括AP初始化、終端掃描、認證、關聯、四次握手、DHCP獲取IP、網絡可用與后續服務。1. AP初始化與參…

Python——Pandas庫,超詳細教程

前言1、Python的Pandas是一個基于Python構建的開源數據分析庫&#xff0c;它提供了強大的數據結構和運算功能。2、Series&#xff1a;一維數組&#xff0c;類似于Numpy中的一維array&#xff0c;但具有索引標簽&#xff0c;可以保存不同類型的數據&#xff0c;如字符串、布爾值…

go語言的gRPC教程-protobuf基礎

一、前言 RPC&#xff0c;全稱Remote Procedure Call&#xff0c;中文譯為遠程過程調用。通俗地講&#xff0c;使用RPC進行通信&#xff0c;調用遠程函數就像調用本地函數一樣&#xff0c;RPC底層會做好數據的序列化與傳輸&#xff0c;從而能使我們更輕松地創建分布式應用和服…

Linux基本指令,對路徑的認識

引言簡單介紹一些Linux的基本指令&#xff0c;快速上手Linux操作系統。一、ls指令語法&#xff1a;ls [選項] [目錄或文件]功能&#xff1a;&#xff1a;對于目錄&#xff0c;該命令列出該目錄下的所有子目錄與文件。對于文件件&#xff0c;將列出文件名以及其他信息常用選項&a…

25. html 使用的字符集是什么,有什么特點

總結 utf-8&#xff0c;支持所有語言一、HTML 默認使用的字符集? HTML 頁面推薦使用 UTF-8 字符集<meta charset"UTF-8" />這是 HTML5 中推薦的標準字符編碼&#xff0c;用于定義網頁中字符的編碼方式。二、什么是字符集&#xff08;Character Encoding&#…

MySQL 讀寫分離(含示例代碼)

背景 面對日益增加的系統訪問量,數據庫的吞吐量面臨著巨大瓶頸。對于同一時刻有大量并發讀操作和較少寫操作類型的應用系統來說,將數據庫拆分為主庫和從庫,主庫負責處理事務性的增刪改操作,從庫負責處理查詢操作,能夠有效的避免由數據更新導致的行鎖,使得整個系統的查詢性…

C#中Visual Studio平臺按照OfficeOpenXml步驟

找到包的地址&#xff1a; NuGet Gallery | DocumentFormat.OpenXml.Framework 3.3.0 https://nuget.info/packages 報錯&#xff1a; 嚴重性 代碼 說明 項目 文件 行 禁止顯示狀態 錯誤 無法解析依賴項“EPPlus”。使用的源: Officeopenxml, Mic…

【Linux】重生之從零開始學習運維之備份恢復

備份恢復準備工作16主機-ubuntu系統準備日志目錄mkdir -p /data/mysql/logs/ chown mysql:mysql -R /data/mysql定制日志配置vim /etc/mysql/mariadb.conf.d/50-server.cnf log_bin/data/mysql/logs/binlog systemctl restart mariadb刪除db1數據庫drop database db1;13主機-ub…

VoIP技術全面深度學習指南:從原理到實踐的認知進化

一、VoIP技術的本質認知與歷史演進 1.1 技術本質的深層理解 VoIP&#xff08;Voice over Internet Protocol&#xff0c;IP語音傳輸&#xff09;從根本上代表了通信技術的范式轉換。這不僅僅是將模擬語音信號數字化那么簡單&#xff0c;而是將傳統的電路交換模式徹底轉向包交換…

CentOS Nginx 1.13.9 部署文檔

以下是 Nginx 1.13.9 的詳細安裝步驟&#xff08;基于 CentOS/Ubuntu 系統&#xff09;&#xff1a;1. 安裝依賴 CentOS/RHEL sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-develUbuntu/Debian sudo apt update && sudo apt install -y b…