Ubuntu系统进程管理

在Ubuntu系统中,进程管理是系统维护和性能调优的重要部分。以下是关键命令和技巧的总结,帮助你有效管理系统进程:


1. 查看进程

  • ps 命令:查看当前进程快照。
      bash   ps aux          # 查看所有运行中的进程(a=所有用户,u=详细信息,x=包括无终端进程)   ps -ef          # 以完整格式列表显示进程(e=所有进程,f=完整格式)   ps -p PID -o comm=  # 查看指定PID的进程名  

  • top/htop:实时动态查看进程状态。
      bash   top             # 默认按CPU使用率排序(按P/M切换CPU/内存排序,q退出)   htop            # 更友好的交互式工具(支持鼠标操作,需安装:sudo apt install htop)  

  • pstree:以树形结构显示进程父子关系。
      bash   pstree -p       # 显示PID  


2. 终止进程

  • kill:向进程发送信号(默认SIGTERM,允许优雅退出)。
      bash   kill PID              # 发送SIGTERM(15)   kill -9 PID           # 强制终止(SIGKILL,9)  

  • killall/pkill:通过进程名操作。
      bash   killall firefox       # 终止所有名为firefox的进程   pkill -f "pattern"   # 根据命令行模式匹配进程  


3. 进程优先级调整

  • nice:启动时设置优先级(范围:-20高优先级 ~ 19低优先级)。
      bash   nice -n 10 command    # 以优先级10启动命令(普通用户只能调低)  

  • renice:调整已运行进程的优先级。
      bash   renice 5 -p PID       # 将PID的优先级调整为5  


4. 后台/前台管理

  • &:在后台启动进程。
      bash   firefox &        # 后台运行Firefox  

  • jobs/fg/bg:管理后台任务。
      bash   jobs             # 查看后台任务列表   fg %1            # 将任务1调到前台   bg %1            # 让任务1在后台继续运行  

  • Ctrl+Z:暂停当前前台进程,再用bg切到后台。


5. 服务管理(Systemd)

  • systemctl:管理系统服务。
      bash   systemctl start nginx     # 启动服务   systemctl stop nginx      # 停止服务   systemctl restart nginx   # 重启服务   systemctl status nginx    # 查看状态   systemctl enable nginx    # 设置开机启动   systemctl disable nginx   # 禁用开机启动  

6. 高级技巧

  • 查找占用资源的进程
      bash   top -o %CPU      # 按CPU排序   top -o %MEM      # 按内存排序  

  • 脱离终端运行进程
      bash   nohup command &           # 忽略挂断信号,输出重定向到nohup.out   disown -a && exit         # 让当前会话所有后台进程脱离终端  

  • 处理僵尸进程
      - 僵尸进程通常需父进程回收。若长期存在,可终止其父进程:
      bash   kill -9 PPID      # PPID为僵尸进程的父进程ID  


7. 常用工具

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

  • vmstat/iostat:监控系统资源。
      bash   vmstat 1             # 每秒刷新一次系统状态(内存、CPU、IO等)  


总结流程图

  1. 查看进程ps, top, htop
  2. 过滤进程grep, pgrep
  3. 终止进程kill, pkill, killall
  4. 调整优先级nice, renice
  5. 管理后台任务&, jobs, fg, bg
  6. 服务控制systemctl

你可能感兴趣的:(ubuntu,linux,运维)