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…