Linux Shell 进程管理命令详解

ps 命令:查看进程状态

ps 命令用于显示当前系统中的进程状态。常用参数组合为 ps aux,其中:

  • a 显示所有用户的进程
  • u 显示进程的详细信息
  • x 包括没有控制终端的进程

典型输出包含以下字段:

  • USER:进程所有者
  • PID:进程ID
  • %CPU:CPU占用率
  • %MEM:内存占用率
  • COMMAND:启动命令
ps aux | grep nginx

该命令可过滤显示nginx相关进程。

top 命令:实时进程监控

top 提供动态实时视图,显示系统概况和进程列表。界面分为两部分:

  • 上部显示系统整体信息(负载、任务数、CPU/内存使用)
  • 下部显示进程列表,默认按CPU占用排序

交互命令:

  • P 按CPU使用排序
  • M 按内存使用排序
  • k 终止指定PID的进程
  • q 退出
kill 命令:终止进程

通过信号控制进程,常用信号:

  • SIGTERM(15) 默认终止信号,允许进程清理
  • SIGKILL(9) 强制立即终止
kill -15 1234  # 优雅终止PID 1234
kill -9 1234   # 强制终止
pkill 和 killall:批量终止
  • pkill 按名称模式匹配
pkill -f "python script.py"
  • killall 终止所有匹配进程
killall nginx
jobs 和 fg/bg:作业控制
  • jobs 列出后台作业
  • fg %n 将作业n调到前台
  • bg %n 将暂停的作业n转到后台
sleep 60 &
jobs
fg %1
nice 和 renice:调整优先级

优先级范围-20(最高)到19(最低):

nice -n 10 ./script.sh  # 启动时设置
renice 5 -p 1234       # 修改运行中进程
nohup:脱离终端运行

使进程忽略挂断信号,持续运行:

nohup ./server.sh > log.txt 2>&1 &
lsof:查看打开文件

列出进程打开的文件和网络连接:

lsof -i :80           # 查看80端口进程
lsof -u www-data      # 查看用户打开文件
进程状态监控工具
  • htop:交互式增强版top
  • glances:综合监控工具
  • atop:记录历史资源使用
  • vmstat:虚拟内存统计
实践建议
  1. 生产环境慎用kill -9,优先尝试SIGTERM
  2. 长期运行服务建议搭配screen/tmux
  3. 关键进程可使用systemdsupervisord托管
  4. 定期检查/var/log下的系统日志

掌握这些命令组合能有效处理进程异常、资源排查等运维场景。建议通过man命令查阅各工具的完整参数说明。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐