进程与任务管理
本篇为 CentOS7 进程与任务管理学习笔记,配套《Linux 服务器搭建与管理》教材知识点整理。进程是程序运行实例,是 Linux 运维排查故障、管控服务的核心模块。文中详细讲解进程查看、进程终止、前后台任务调度、进程优先级调整以及 systemd 服务管理相关命令,包含 ps、top、htop、kill、nohup、screen、nice、systemctl 等常用指令,附带选项说明与实操示例,适合零基础运维学习者循序渐进练习。本系列为分章节连载,持续更新 CentOS7 全套命令实操内容。
查看进程:ps、top、htop、pgrep
ps
Process Status,静态查看当前进程快照。
语法格式:
ps 选项
常用选项说明:
-ef 显示所有进程完整信息
-aux 显示所有用户进程(含 CPU/内存占用)
-ef | grep 关键字 按名称过滤进程
--sort=-%mem 按内存占用排序
典型示例:
ps -ef # 查看所有进程
ps aux # 带 CPU/内存占比查看
ps -ef | grep nginx # 查找 nginx 进程
ps aux --sort=-%cpu # 按 CPU 使用率降序
ps -p 1234 # 查看指定 PID 的进程
top
动态实时查看进程和系统资源占用,按 q 退出。
语法格式:
top 选项
常用选项说明:
-d 秒数 设置刷新间隔
-p PID 只监控指定进程
典型示例:
top # 实时监控(P 按CPU、M 按内存、q 退出)
top -d 2 # 每 2 秒刷新
top -p 1234 # 只监控 PID 1234
htop
top 的增强版,彩色交互界面,CentOS 7 需安装。
语法格式:
htop
典型示例:
htop # 交互式监控,F5 树状、F9 杀进程
pgrep
按名称或属性查找进程的 PID。
语法格式:
pgrep 选项 名称
常用选项说明:
-u 用户 按用户过滤
-f 匹配完整命令行
-l 同时显示进程名
典型示例:
pgrep nginx # 输出 nginx 的 PID
pgrep -l sshd # 显示 PID 和名称
终止进程:kill、killall、pkill
kill
向进程发送信号,默认发送 SIGTERM(15) 请求正常退出。
语法格式:
kill 信号 PID
常用选项说明:
-9 发送 SIGKILL,强制终止(无法被捕获)
-15 发送 SIGTERM,正常终止(默认)
-l 列出所有信号
典型示例:
kill 1234 # 请求正常终止 PID 1234
kill -9 1234 # 强制终止
kill -l # 查看信号列表
killall
按进程名终止所有同名进程。
语法格式:
killall 选项 进程名
常用选项说明:
-9 强制终止
-u 用户 终止指定用户的进程
典型示例:
killall nginx # 终止所有 nginx 进程
killall -9 java # 强制终止所有 java 进程
pkill
按名称或条件终止进程,配合 -f 可匹配完整命令行。
语法格式:
pkill 选项 名称
常用选项说明:
-f 匹配完整命令行
-u 用户 终止指定用户的所有进程
典型示例:
pkill -9 nginx # 强制终止 nginx
pkill -f "php-fpm" # 按完整命令行匹配终止
前后台与后台运行:jobs、bg、fg、nohup、screen
jobs / bg / fg
管理后台任务。命令后用 & 放到后台;Ctrl+Z 暂停放到后台。
语法格式:
jobs
bg %编号
fg %编号
典型示例:
ping 8.8.8.8 & # 命令后加 & 立即放后台
jobs # 列出后台任务
fg %1 # 把任务 1 调回前台
bg %1 # 把暂停的任务 1 放到后台运行
nohup
No Hang Up,使命令在退出终端后仍持续运行,输出默认写入 nohup.out。
语法格式:
nohup 命令 &
典型示例:
nohup python app.py > app.log 2>&1 & # 后台持久运行并记录日志
nohup /opt/start.sh & # 后台运行脚本
screen
终端复用工具,可在断开连接后保持会话,CentOS 7 需安装。
语法格式:
screen 选项
常用选项说明:
-S 会话名 创建命名会话
-r 会话名 重新连接会话
-ls 列出会话
典型示例:
screen -S work # 新建名为 work 的会话
screen -ls # 列出所有会话
screen -r work # 重新连接 work 会话
会话内 Ctrl+A D # 分离会话(后台保留)
进程优先级:nice、renice
nice
以指定优先级启动进程,优先级范围 -20(最高)到 19(最低)。
语法格式:
nice -n 值 命令
典型示例:
nice -n -10 ./heavy.sh # 以较高优先级启动
nice -n 10 ./background.sh # 以较低优先级启动
renice
调整正在运行进程的优先级。
语法格式:
renice 优先级 -p PID
典型示例:
renice -5 -p 1234 # 把 PID 1234 的优先级调整为 -5
systemd 进程管理:systemctl
CentOS 7 使用 systemd 管理系统服务。systemctl 是管理服务、查看状态的核心命令,详细用法见第 12 章。
systemctl status nginx # 查看服务状态
systemctl start nginx # 启动服务
systemctl stop nginx # 停止服务
systemctl restart nginx # 重启服务
systemctl enable nginx # 设置开机自启