当前位置: 首页 > news >正文

Linux 进程管理与计划任务

Linux 进程管理与计划任务

在这里插入图片描述

一、程序与进程的概念区分

  • 程序:存储在硬盘等外部存储介质中的可执行机器代码及数据的静态集合,是指令的静态形式。
  • 进程:程序被加载到内存中运行时,在 CPU 和内存中处于动态执行状态的实例,是指令的动态执行过程。
  • 关系:一个程序启动后可创建一个或多个进程(例如浏览器程序可打开多个标签页,每个标签页对应一个进程)。

二、进程查看工具及参数解析

1. ps:查看静态进程信息

用于显示系统在某一时刻的进程快照,常用参数组合及功能如下:

参数含义
-a显示当前终端下所有用户的进程,与-x结合可显示系统所有进程
-u以用户为中心的格式输出进程信息(含用户、CPU、内存占用等)
-x显示当前用户所有终端的进程(包括无终端关联的进程)
-e显示系统内所有进程
-l以长格式显示进程信息(含优先级、状态等详细字段)
-f以完整格式显示进程信息(含父进程 ID、启动时间等)

输出字段说明

  • USER:启动进程的用户账号
  • PID:进程的唯一数字 ID(系统内唯一)
  • %CPU:进程占用 CPU 的百分比
  • %MEM:进程占用内存的百分比
  • VSZ:进程占用的虚拟内存大小(单位:KB)
  • RSS:进程占用的物理内存大小(单位:KB)
  • TTY:进程运行的终端(?表示无需终端或终端未知)
  • STAT:进程状态(R运行、S休眠、Z僵死、<高优先级、N低优先级等)
  • START:进程启动时间
  • TIME:进程累计占用 CPU 的时间
  • COMMAND:启动进程的命令名称

2. top:实时监控动态进程

实时刷新显示进程状态(默认 3 秒刷新一次,按q退出),核心信息包括:

(1)系统整体状态
  • load average:1 分钟、5 分钟、15 分钟内的 CPU 平均负载(若 5/15 分钟负载超过 CPU 核心数的 2 倍,视为高负载)
  • Tasks:进程总数及状态分布(running运行中、sleeping休眠、stopped停止、zombie僵死)
  • %cpu:CPU 占用细分(us用户进程、sy系统进程、ni优先级调整、id空闲、waI/O 等待等)
  • Mem:物理内存使用情况
  • Swap:虚拟内存(交换空间)使用情况
(2)进程列表字段
  • PR:进程优先级(数值越小优先级越高)
  • NI:进程 nice 值(范围 - 20~19,值越小优先级越高)
  • VIRT:进程占用的虚拟内存总量(KB)
  • RES:进程占用的物理内存总量(KB)
  • SHR:进程与其他进程共享的内存总量(KB)
  • S:进程状态(D不可中断休眠、R运行、S休眠、T停止、Z僵死)
  • TIME+:进程启动至今的 CPU 占用时间(精确到 0.01 秒)

3. 其他进程查看工具

  • pgrep -l 进程名:查询指定进程的名称及 PID(如pgrep -l systemd

  • pstree
    

    :以树形结构展示进程间的父子关系

    • -p:同时显示进程 PID
    • -u:显示进程所属用户
    • -a:显示完整命令行

三、进程控制操作

1. 进程的启动方式

  • 前台启动:直接执行命令(如ls),命令行被占用直至进程结束
  • 后台启动:命令后加&(如route &),进程在后台运行,不阻塞当前终端

2. 进程的挂起与恢复

  • 挂起进程:前台进程运行时按Ctrl+Z,进程被暂停并转入后台

  • 查看后台进程jobs -l(显示进程 ID、状态及命令)

  • 恢复后台进程

    • bg 进程ID:后台恢复运行(如bg 1
    • fg 进程ID:前台恢复运行(如fg 1

3. 进程的终止

  • kill 进程ID:正常终止指定 PID 的进程(如kill 1234

  • kill -9 进程ID:强制终止进程(用于常规kill无效时,如kill -9 1234

  • killall 进程名:终止所有同名进程(如killall firefox),-9参数可强制终止

  • pstree
    

    :按条件终止进程

    • -U 用户名:终止指定用户的进程(如pkill -U natasha
    • -t 终端:终止指定终端的进程(如pkill -t pts/0

四、计划任务配置

1. at:一次性计划任务

用于配置在指定时间执行一次的任务:

  • 创建任务:

    at 23:30 2024-12-31  # 指定执行时间
    at> ls / > /tmp/result.txt  # 输入任务命令
    按Ctrl+D保存退出
    
  • 管理任务:

    • atq:查看所有at任务
    • at -c 任务号:查看任务详情
    • atrm 任务号:删除任务

2. crontab:周期性计划任务

用于配置重复执行的任务,核心文件包括/etc/crontab(系统任务)和/var/spool/cron/(用户任务)。

(1)时间格式

遵循 “分 时 日 月 周” 的格式,支持特殊符号:

  • *:匹配所有值(如 “分” 位为*表示每分钟)
  • */n:每隔 n 单位(如*/10表示每 10 分钟)
  • a-b:范围(如8-17表示 8 到 17 点)
  • a,b:多个值(如1,3,5表示周一、三、五)
(2)常用命令
  • crontab -e:编辑当前用户的任务
  • crontab -u 用户名 -e:编辑指定用户的任务
  • crontab -l:查看任务列表
  • crontab -r:删除所有任务

例:

  1. 每月 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
    
  2. 周一至周五 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
    

总结

进程管理通过pstop等工具监控系统运行状态,结合killbg等命令控制进程生命周期;计划任务通过atcrontab实现任务的自动执行,是系统自动化运维的核心工具。掌握这些操作可有效提升系统管理效率。

http://www.dtcms.com/a/308700.html

相关文章:

  • 代码随想录算法训练营第五十七天|图论part7
  • 物联网与AI深度融合,赋能企业多样化物联需求
  • Unity插件——Simple Waypoint System的使用总结
  • Apifox 7 月更新|通过 AI 命名参数及检测接口规范、在线文档支持自定义 CSS 和 JavaScript、鉴权能力升级
  • 20250731解决RK3588的AIOT参考设计刷机之后可以启动但是断电进MASKROM模式
  • 蓝牙LMP版本交换过程
  • 以AI大模型重构教育新生态,打造“教-学-练-辅-评”一体化智能平台
  • 为什么Android主线程与java主线程不同,不会退出?
  • 分布式系统的基石:ZooKeeper架构设计与实战指南
  • 【抄袭】思科交换机DAI(动态ARP监控)配置测试
  • 云上服务器常见的存储方式和类型
  • 自监督学习
  • get和post的请求在request里的应用与区别
  • 机器视觉的家电薄膜开关丝印应用
  • 前端 vue 第三方工具包详解-小白版
  • Data Processer
  • QQ输入法设置快捷键,更快造词或自定义短语
  • 智慧零售商品识别准确率↑32%:陌讯多模态融合算法实战解析
  • 2025年IntelliJ IDEA最新下载、安装教程,附详细图文
  • 人工智能如何助力工业领域实现可持续发展?
  • 循环神经网络RNN原理精讲,详细举例!
  • 人工智能与新闻传播:信息传播的变革
  • vue-seamless-scroll 与 echarts 三联水球图循环滚动的渲染难题-出现短暂空白
  • el-button长按触发事件(含未响应的解决方案)
  • 【AI大模型】披着羊皮的狼--自动化生成越狱提示的系统(ReNeLLM)
  • QtConcurrent::run函数
  • React 项目环境如何安装使用?
  • es的histogram直方图聚合和terms分组聚合
  • pig Cloud中分布式锁的使用(setIfAbsent)
  • 扫描发票自动录入财务系统怎么做?