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:一次性计划任务

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

  • 创建任务:

    bash 复制代码
    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"

    bash 复制代码
    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

    bash 复制代码
    crontab -e
    # 加入:*/2 8-21 * * 1-5 date >> /home/galaxy/my_first_cron_job.txt
    systemctl restart crond

总结

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

相关推荐
卍郝凝卍11 分钟前
云上服务器常见的存储方式和类型
大数据·服务器·数据库
专注VB编程开发20年13 分钟前
UDP受限广播地址255.255.255.255的通信机制详解
网络·udp·智能路由器
柏木乃一1 小时前
Linux初步认识与指令与权限
linux·运维·服务器·shell·权限
189228048611 小时前
NX947NX955美光固态闪存NX962NX966
大数据·服务器·网络·人工智能·科技
Joemt1 小时前
ubuntu源码编译安装cmake高版本、pybind11安装、crow使用
linux·运维·ubuntu
huohuopro2 小时前
在linux(ubuntu)服务器上安装NTQQ并使用
linux·ubuntu
Jooolin2 小时前
Ubuntu?Centos?还是 redhat?Linux 系统选哪个?
linux·ubuntu·ai编程
bigcarp3 小时前
linux + 宝塔面板 部署 django网站 启动方式:uwsgi 和gunicorn如何选择 ?
linux·运维·django