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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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、使用各大云平…