云计算百科
云计算领域专业知识百科平台

Linux 进程管理与计划任务设置

Linux 进程管理与计划任务设置

一、进程管理

进程管理用于监控、控制系统中运行的程序(进程),包括查看进程状态、调整优先级、终止异常进程等。以下是核心命令及操作说明:

1. 常用进程查看命令

(1)ps:查看进程静态信息

功能:显示系统当前进程的快照(静态信息)。

选项

说明

-a

显示当前终端下的所有进程(包括其他用户),与 -x 结合显示系统所有进程

-u

以用户为中心的格式输出进程信息

-x

显示当前用户所有终端的进程(包括无终端的后台进程)

-e

显示系统内所有进程

-l

长格式显示进程信息

-f

完整格式显示进程信息

常用用法:

ps -aux # 显示所有进程的详细信息(用户视角)

ps -elf # 显示所有进程的完整格式(系统视角)

输出字段说明:

字段

含义

USER

启动进程的用户账号

PID

进程唯一 ID(系统中唯一)

%CPU

进程占用 CPU 的百分比

%MEM

进程占用内存的百分比

VSZ

占用虚拟内存(swap)的大小(KB)

RSS

占用物理内存的大小(KB)

TTY

进程运行的终端(? 表示无需终端)

STAT

进程状态(R运行、S休眠、Z僵死、<高优先级、N低优先级等)

START

进程启动时间

TIME

进程占用 CPU 的总时间

COMMAND

启动进程的命令名称

(2)top:查看进程动态信息

功能:实时动态监控进程状态(默认每 3 秒刷新一次)。

界面核心指标说明:

  • 顶部系统信息:
    • load average: 0.1, 0.5, 1.0:CPU 1 分钟、5 分钟、15 分钟内的平均负载(超过 CPU 核心数 2 倍表示高负载)。
  • Task(进程统计):
    • total:总进程数;running:运行中;sleeping:休眠;stopped:停止;zombie:僵死。
  • % CPU(CPU 占用):
    • us:用户进程占用;sy:系统进程占用;ni:调整过优先级的用户进程;id:空闲 CPU;wa:I/O 等待;hi/si:硬 / 软中断;st:虚拟化占用。
  • Mem/Swap:物理内存 / 交换空间的使用情况(总容量、已用、空闲)。
  • 进程列表字段:

字段

含义

PID

进程 ID

USER

进程属主

PR

进程优先级(内核动态调整)

NI

进程 nice 值(-20~19,值越小优先级越高)

VIRT

进程占用的虚拟内存总量(KB)

RES

进程占用的物理内存总量(KB)

SHR

与其他进程共享的内存量(KB)

S

进程状态(D不可中断休眠、R运行、S休眠、T停止、Z僵死)

%CPU/%MEM

进程占用 CPU / 内存的百分比

TIME+

进程启动后占用的 CPU 总时间

COMMAND

启动进程的命令

(3)pgrep -l <进程名>:按名称查询进程

功能:根据进程名查找对应的进程 ID(PID)和名称。

示例:

pgrep -l systemd # 查找名为sshd的进程,输出格式:PID 进程名

(4)pstree:查看进程树形结构

功能:以树形图展示进程间的父子关系。

选项

说明

-p

同时显示进程 PID

-u

显示进程所属用户

-a

显示完整的命令行信息

示例:

pstree -pu # 显示进程树、PID及所属用户

2. 进程控制操作

(1)进程启动方式
  • 前台启动:命令直接在当前终端运行(默认方式),例如:

ls /home # 前台执行,执行期间终端被占用

  • 后台启动:命令后加 &,进程在后台运行,终端可继续使用:

route & # 后台执行route命令

(2)进程挂起与恢复
  • 挂起当前进程:前台进程运行时,按 Ctrl + Z 可将其挂起(转入后台并停止执行)。

示例:

top # 前台运行top,按Ctrl+Z挂起

  • 查看后台进程:

jobs -l # 列出后台进程(-l显示PID)

  • 恢复后台进程:
    • bg <任务号>:将后台挂起的进程恢复运行(继续在后台):

bg 1 # 恢复任务号为1的后台进程

    • fg <任务号>:将后台进程调回前台运行:

fg 1 # 将任务号为1的进程调至前台

3. 进程终止与优先级调整

(1)kill <进程号>:通过 PID 终止进程

功能:向指定 PID 的进程发送终止信号(默认信号为 15,正常终止)。

  • 强制终止(信号 9,无法忽略):

kill -9 1234 # 强制终止PID为1234的进程

(2)pkill <条件>:按条件终止进程

功能:根据进程名、用户、终端等属性终止进程。

选项

说明

-U <用户名>

终止指定用户的进程

-t <终端>

终止指定终端的进程

示例:

pkill -U zhangsan # 终止用户zhangsan的所有进程
pkill -9 sshd # 强制终止所有名为sshd的进程

(3)killall <进程名>:按名称终止所有同名进程

示例:

killall -9 httpd # 强制终止所有httpd进程

(4)renice:调整进程优先级

功能:修改进程的 nice 值(-20~19,值越小优先级越高)。

示例:

renice -5 1234 # 将PID为1234的进程nice值改为-5(提高优先级)

二、计划任务设置

计划任务用于自动执行周期性或一次性任务(如备份、监控等),核心工具为 at(一次性)和 crontab(周期性)。

1. 一次性计划任务(at)

(1)设置一次性任务

语法:at <时间> [日期],进入编辑界面输入命令,按 Ctrl + D 保存退出。

示例:

at 23:30 2025-07-31 # 设置2025年7月31日23:30执行任务

at> ls / > /tmp/dir_list # 任务内容:将/目录列表写入/tmp/dir_list

at> <EOT> # 按Ctrl+D结束编辑

(2)管理at任务
  • 查看待执行任务:

atq # 列出所有at任务(格式:任务号 执行时间 用户名)

  • 查看任务详情:

at -c 1 # 查看任务号为1的具体内容

  • 删除任务:

atrm 1 # 删除任务号为1的at任务

2. 周期性计划任务(crontab)

(1)基本语法

通过 crontab -e 编辑任务,格式为:

分 时 日 月 周 命令

时间字段

取值范围

特殊符号

含义

0~59

,

枚举(如10,20表示 10 分和 20 分)

0~23

范围(如9-17表示 9 点到 17 点)

1~31

*/n

间隔(如*/2表示每 2 天)

1~12

0~7(0/7 为周日)

(2)crontab 命令选项

选项

说明

-e

编辑当前用户的计划任务

-u <用户>

指定用户(仅 root 可用),如 crontab -u zhangsan -e

-l

列出当前用户的计划任务

-r

删除当前用户的所有计划任务

(3)配置示例

# 每天凌晨3点执行备份脚本

0 3 * * * /root/backup.sh

# 每周一、三、五的18:30执行日志清理

30 18 * * 1,3,5 /usr/bin/clean_logs.sh

# 每月1日和15日的0点,每小时执行一次监控脚本

0 */1 1,15 * * /usr/local/monitor.sh

(4)任务文件存放
  • 系统级任务:/etc/crontab(需 root 编辑)。
  • 用户级任务:/var/spool/cron/<用户名>(自动生成,无需手动编辑)。
(5)服务管理

crontab 依赖 crond 服务,需确保其运行:

systemctl restart crond # 重启服务

systemctl enable crond # 设置开机自启

3. 注意事项

  • 关机影响:at 和 crontab 任务均依赖系统运行状态。若系统在任务预定时间关机,at 任务会失效,crontab 任务会跳过该次执行,后续周期继续。
  • 命令路径:计划任务中建议使用命令绝对路径(如 /usr/bin/ls 而非 ls),避免环境变量问题。
  • 日志查看:任务执行日志可通过 /var/log/cron 或 journalctl -u crond 查看。

通过上述工具和操作,可实现对 Linux 进程的全面管理及自动化任务调度,适用于系统监控、定期维护等场景。

赞(0)
未经允许不得转载:网硕互联帮助中心 » Linux 进程管理与计划任务设置
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!