Skip to main content

Linux进程管理

在 Linux 系统中,进程管理是系统运维和日常操作的重要部分。以下是常用的进程管理命令及其用途:


1. 查看进程

  • ps
    查看当前进程的快照。

    ps aux       # 查看所有运行中的进程(BSD 格式)
    ps -ef       # 查看所有进程(标准格式)
    ps -u user   # 查看特定用户的进程
    
  • top / htop
    实时动态查看进程和系统资源占用(htop 是增强版,需安装)。

    top          # 交互式界面,按 `q` 退出
    htop         # 更友好的界面(支持鼠标操作)
    
  • pstree
    以树状结构显示进程关系。

    pstree -p    # 显示进程及其 PID
    

2. 终止进程

  • kill
    通过进程 ID (PID) 终止进程。

    kill -9 PID          # 强制终止进程(SIGKILL)
    kill -15 PID         # 优雅终止进程(SIGTERM,默认)
    
  • pkill
    通过进程名终止进程。

    pkill -9 nginx       # 强制终止所有名为 "nginx" 的进程
    
  • killall
    终止所有匹配名称的进程。

    killall -9 python    # 强制终止所有名为 "python" 的进程
    

3. 进程优先级

  • nice
    启动进程时指定优先级(范围:-20 最高优先级,19 最低)。

    nice -n 10 command   # 以较低优先级运行命令
    
  • renice
    修改已运行进程的优先级。

    renice -n 5 -p PID   # 修改指定 PID 的优先级为 5
    

4. 后台进程管理

  • &
    将进程放到后台运行。

    command &    # 后台运行命令
    
  • jobs
    查看当前终端后台任务。

    jobs -l      # 显示后台任务及其 PID
    
  • fg / bg
    将任务切换到前台(fg)或继续后台运行(bg)。

    fg %1        # 将任务 1 切换到前台
    bg %2        # 将任务 2 继续在后台运行
    
  • nohup
    退出终端后仍保持进程运行。

    nohup command &      # 忽略 SIGHUP 信号,日志默认写入 nohup.out
    

5. 进程搜索

  • pgrep
    根据名称查找进程 PID。
    pgrep -u root nginx  # 查找 root 用户的 nginx 进程 PID
    

6. 监控工具

  • vmstat
    查看系统资源使用情况(CPU、内存、IO 等)。

    vmstat 1      # 每秒刷新一次
    
  • pidstat(需安装 sysstat
    监控进程的 CPU、内存等资源占用。

    pidstat -p PID 1   # 每秒监控指定 PID
    

7. 其他实用命令

  • lsof
    列出被进程打开的文件。

    lsof -i :80       # 查看占用 80 端口的进程
    lsof -p PID       # 查看指定 PID 打开的文件
    
  • strace
    跟踪进程的系统调用。

    strace -p PID     # 跟踪进程的系统调用(调试用)
    

常见场景示例

  1. 终止失控的进程

    ps aux | grep "bad_process"  # 查找 PID
    kill -9 PID
    
  2. 后台运行并保存日志

    nohup python script.py > output.log 2>&1 &
    
  3. 监控高 CPU 进程

    top -o %CPU          # 按 CPU 使用率排序
    

掌握这些命令后,你可以高效地管理 Linux 系统中的进程。如果需要更详细的信息,可以通过 man 命令名(如 man ps)查看手册。