【Linux日新月异(四)】CentOS 7进程管理深度指南:掌控系统生命线

🌌提供:

  1. Kimi K2 Thinking(网站: 大语言模型(Large Language Model, LLM),是当前人工智能领域的重要技术分支,专注于自然语言处理和生成任务。)【开源】「AL」〖✿✿✿✿✿〗
    🔔说明: 本文内容由Kimi K2生成。AI创作虽经校对,仍难免疏漏或偏颇之处。若您发现错漏、或有任何建议,恳请不吝赐教。您的每一次指正,都是我改进与成长的重要指引。
    📓摘要:
    略...(有好建议的可以留言哦~~~(✿◕‿◕✿))


⚡ CentOS 7进程管理深度指南:掌控系统生命线

进程是Linux系统的灵魂!CentOS 7作为服务器系统,进程管理能力直接决定系统稳定性。从传统的pstop到现代的systemd,全面掌握才能游刃有余!


一、👁️ 进程查看命令大全

1. ps- 静态进程快照 ⭐

语法:

bash 复制代码
ps [选项]

核心选项:

  • aux:BSD风格,显示所有用户的所有进程(最常用!)
  • -ef:System V风格,完整格式显示
  • -l:长格式显示
  • --sort:排序(如--sort=-%cpu

案例1:查看所有进程

bash 复制代码
ps aux
# 输出字段:
# USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
# USER: 进程所有者
# PID: 进程ID
# %CPU: CPU占用率
# %MEM: 内存占用率
# VSZ: 虚拟内存大小(KB)
# RSS: 常驻内存大小(KB)
# STAT: 进程状态
# START: 启动时间
# TIME: 累计CPU时间
# COMMAND: 启动命令

STAT状态码解析:

  • R = Running(运行)
  • S = Sleeping(休眠)
  • D = 不可中断休眠(I/O等待,⚠️危险状态)
  • Z = Zombie(僵尸进程,需清理)
  • T = Stopped(停止)
  • < = 高优先级
  • N = 低优先级
  • s = 会话组长
  • + = 前台进程组

案例2:查找特定进程

bash 复制代码
# 查找nginx进程
ps aux | grep nginx
# ⚠️ 注意:grep nginx也会出现在结果中!

# 更精确的方法
ps aux | grep [n]ginx

# 使用pgrep(推荐)
pgrep nginx
# 输出进程ID: 1234 1235 1236

案例3:树状显示进程关系

bash 复制代码
ps auxf
# 或
ps -ef --forest

# 更专业的树状工具
pstree -p
# 输出:
# systemd(1)─┬─auditd(855)───{auditd}(856)
#            ├─crond(1322)
#            ├─nginx(1234)─┬─nginx(1235)
#            │             └─nginx(1236)
#            └─sshd(1056)───sshd(2001)───bash(2002)───ping(3001)

案例4:自定义输出格式

bash 复制代码
# 只显示特定字段
ps -eo pid,ppid,user,%cpu,%mem,cmd --sort=-%cpu | head -10
# 显示:PID,父PID,用户,CPU%,内存%,命令,并按CPU降序

# 查找占用CPU最高的5个进程
ps aux --sort=-%cpu | head -6  # 6是因为第1行是表头

⚠️ 注意事项:

  • 🔥ps aux vs ps -efaux显示%CPU/%MEM更直观,-ef显示PPID(父进程ID)
  • 僵尸进程STAT为Z的进程无法kill,需kill其父进程
  • 性能影响ps aux瞬间快照,频繁执行有轻微开销
  • 管道grep :总是看到grep自身,用grep -v greppgrep过滤

2. top- 动态进程监控 ⭐⭐

语法:

bash 复制代码
top [选项]

核心交互按键:

  • P:按CPU排序(默认)
  • M:按内存排序
  • c:切换显示完整命令
  • k:kill进程(输入PID)
  • r:renice修改优先级
  • 1:显示所有CPU核心
  • d:修改刷新间隔(默认3秒)
  • q:退出

案例1:基础监控

bash 复制代码
top
# 输出:
# top - 11:30:50 up 2 days,  4:15,  2 users,  load average: 0.50, 0.30, 0.20
# Tasks: 180 total,   1 running, 179 sleeping,   0 stopped,   0 zombie
# %Cpu(s): 10.0 us,  5.0 sy,  0.0 ni, 85.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
# MiB Mem :   7823.5 total,   1234.5 free,   3456.7 used,   3132.3 buff/cache
# MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   4000.0 avail Mem
# 
#   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
#  3001 root      20   0  116900   4088   3348 R  99.9  0.1   0:05.12 stress

负载(load average)解析

  • 0.50, 0.30, 0.20:1分钟、5分钟、15分钟平均负载
  • 理想值:应<CPU核心数
  • >5:严重过载,需排查!

CPU状态解析

  • us:用户空间占用
  • sy:内核空间占用
  • ni:nice值调整占用
  • id:空闲
  • wa:I/O等待(⚠️高值说明磁盘瓶颈)
  • hi:硬中断
  • si:软中断
  • st:被虚拟机偷取的时间

案例2:监控特定用户

bash 复制代码
top -u nginx
# 只显示nginx用户的进程

案例3:批处理模式(输出到文件)

bash 复制代码
# 运行5次,间隔2秒,输出到文件
top -b -n 5 -d 2 > top_log.txt
# -b: batch mode, -n: 次数, -d: 间隔

⚠️ 注意事项:

  • 🔥top刷新开销:频繁刷新(<1秒)会增加系统负载
  • CPU显示 :按1可查看每个核心,排查单核瓶颈
  • 内存迷雾VIRT含虚拟内存,RES才是物理内存
  • 高wa值wa>30%说明磁盘I/O严重阻塞,需优化或扩容

3. htop- 更友好的top替代品 ⭐

安装:

bash 复制代码
yum install -y htop

优势:

  • 彩色显示,支持鼠标
  • 树状视图(F5)
  • 搜索进程(F3)
  • 直接kill进程(F9)

案例:

bash 复制代码
htop

界面说明:

  • 顶部:CPU、内存、Swap条形图
  • 中部:进程列表(支持鼠标滚动)
  • 底部:功能键提示(F1帮助,F9杀进程,F10退出)

⚠️ 注意事项:

  • 默认可用 :CentOS 7最小化安装不包含,需手动安装
  • 生产环境:某些保守环境可能禁止安装额外工具,此时用top
  • 快捷键F6可按多种字段排序,比top更灵活

4. pgrep / pidof - 按名称查找PID

pgrep语法:

bash 复制代码
pgrep [选项] 进程名

案例:

bash 复制代码
# 查找nginx进程ID
pgrep nginx
# 输出:1234 1235 1236

# 查找并显示进程名
pgrep -l nginx
# 输出:1234 nginx  1235 nginx  1236 nginx

# 查找最老的进程
pgrep -o nginx      # 输出master进程ID

# 查找最新的进程
pgrep -n nginx      # 输出最新worker进程ID

# 统计进程数
pgrep -c nginx      # 输出:3

pidof语法:

bash 复制代码
pidof nginx
# 输出:1234 1235 1236

# 只返回一个PID
pidof -s nginx      # 输出:1234

⚠️ 注意事项:

  • 🔥pgrep vs pidofpgrep功能更强大,支持正则;pidof简单直接
  • 脚本应用pgrep -f支持匹配完整命令行,适合复杂场景
  • 进程不存在 :返回空,脚本中需判断if pgrep nginx > /dev/null; then ...

二、⚔️ 进程控制命令

1. kill- 终止进程(发送信号)

语法:

bash 复制代码
kill [选项] PID

常用信号:

  • 15(SIGTERM):优雅终止(默认信号,允许进程清理)
  • 9(SIGKILL):强制终止(⚠️无法捕获,可能丢数据)
  • 1(SIGHUP):重载配置
  • 2(SIGINT):Ctrl+C中断
  • 18(SIGCONT):恢复暂停进程
  • 19(SIGSTOP):暂停进程(Ctrl+Z)

案例1:优雅终止

bash 复制代码
# 查找进程
PID=$(pgrep nginx)

# 发送TERM信号(PID会自动清理资源)
kill $PID
# 或
kill -15 $PID

案例2:强制终止(⚠️最后手段)

bash 复制代码
# 当进程无响应时
kill -9 3001

# ⚠️ 危险操作:kill -9可能:
# 1. 导致数据丢失(未写入磁盘)
# 2. 产生孤儿进程
# 3. 资源无法回收(文件句柄未关闭)

案例3:批量kill

bash 复制代码
# kill所有nginx进程
kill $(pgrep nginx)

# 使用pkill(更简洁)
pkill nginx

# killall(按精确名称)
killall -15 nginx

⚠️ 注意事项:

  • 🔥权限问题:只能kill自己进程,kill他人需root权限
  • 僵尸进程:kill无效,需kill其父进程
  • 信号陷阱kill -9无法捕获的,进程无法做清理工作
  • 最佳实践 :先kill -15,等待5秒,无效再kill -9

2. pkill /killall- 按名称kill

pkill语法:

bash 复制代码
pkill [选项] 进程名

killall语法:

bash 复制代码
killall [选项] 进程名

案例:

bash 复制代码
# 终止所有名为nginx的进程
pkill nginx
killall nginx

# 终止匹配正则的进程
pkill -f "python.*server.py"

# 按终端kill
pkill -t pts/0

# 按用户kill(⚠️危险!)
pkill -u testuser

# killall精确匹配(包括路径)
killall /usr/bin/python

⚠️ 注意事项:

  • 🔥killall风险killall python会kill所有python进程,可能误伤
  • pkill更灵活:支持正则,建议优先使用
  • 大小写 :默认区分大小写,-i忽略大小写
  • 测试模式-e显示匹配的进程名和PID,不kill(先测试!)

三、🎚️ 进程优先级管理

1. nice- 启动时设置优先级

优先级范围:-20(最高)到19(最低),默认0

语法:

bash 复制代码
nice [-n 优先级] 命令

案例:

bash 复制代码
# 后台运行低优先级备份任务
nice -n 10 tar -czf backup.tar.gz /data &

# 高优先级运行计算任务(需root)
sudo nice -n -5 ./stress_test

2. renice- 运行时修改优先级

语法:

bash 复制代码
renice 优先级 [-p PID] [-g PGID] [-u 用户]

案例:

bash 复制代码
# 将进程3001优先级设为15(更低)
renice 15 -p 3001

# 修改用户所有进程
renice 10 -u nginx

# 修改进程组
renice 5 -g 5000

⚠️ 注意事项:

  • 🔥权限限制:普通用户只能降低优先级(>0),root可任意调整
  • 效果:优先级只影响CPU调度,不限制CPU使用率
  • 实时性:对I/O密集型进程效果不明显
  • 系统负载:高负载时nice效果明显,低负载时几乎无差别

四、🔄 后台任务管理

1. &- 后台运行符

案例:

bash 复制代码
# 后台运行,输出仍显示在终端
./long_task.sh &

# 重定向输出到文件
./backup.sh > /var/log/backup.log 2>&1 &

2. jobs- 查看后台任务

案例:

bash 复制代码
# 查看当前shell的后台任务
jobs
# 输出:
# [1]-  Running                 ./backup.sh > /var/log/backup.log 2>&1 &
# [2]+  Stopped                 vim /etc/nginx.conf

# 查看详细信息
jobs -l
# 输出含PID:[1]+  12345 Running ...

3. bg /fg- 后台/前台切换

案例:

bash 复制代码
# 将vim暂停(Ctrl+Z)
# 挂起后显示:[1]+  Stopped                 vim /etc/nginx.conf

# 恢复到后台运行
bg 1

# 恢复到前台
fg 1

# 启动暂停进程
kill -18 12345   # SIGCONT信号

4. nohup- 忽略挂断信号

案例:

bash 复制代码
# 关闭终端后进程继续运行
nohup ./server.sh &

# 输出重定向(默认nohup.out)
nohup ./server.sh > server.log 2>&1 &

# 查看nohup进程
ps aux | grep server.sh

⚠️ 注意事项:

  • 🔥终端关闭 :普通&任务在终端关闭时会被SIGHUP终止,需nohup
  • 标准输入:后台任务无法交互,需提前确认所有输入
  • 日志管理nohup.out会无限增长,务必重定向日志
  • 重新连接 :后台任务无法用fg恢复,需用kill终止

五、📊 系统资源监控命令

1. vmstat- 虚拟内存统计

语法:

bash 复制代码
vmstat [间隔] [次数]

案例:

bash 复制代码
# 显示一次
vmstat

# 每秒刷新,共5次
vmstat 1 5

# 输出解析:
# procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
#  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
#  1  0      0 123456  12345 456789    0    0    10    20   50  100  5  2 90  3  0

关键字段:

  • r:运行队列长度(>CPU核心数说明过载)
  • b:阻塞进程数(等待I/O)
  • si/so:Swap交换(>0说明内存不足)
  • bi/bo:块设备读写(磁盘I/O)
  • us/sy:用户/系统CPU使用率
  • wa:I/O等待(⚠️>30%需关注)

⚠️ 注意事项:

  • 内存不足si/so持续>0说明物理内存耗尽,需扩容
  • 列队过长r长期>CPU核心数×2,系统严重过载
  • wa高:可能是磁盘瓶颈或网络文件系统问题

2. iostat- I/O设备统计

安装:

bash 复制代码
yum install -y sysstat

案例:

bash 复制代码
# 查看磁盘I/O
iostat -x 1 5
# -x: 扩展信息

# 输出解析:
# Device: rrqm/s wrqm/s   r/s   w/s  rkB/s  wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
# sda       0.00   0.00  0.00  0.00   0.00   0.00     0.00     0.00    0.00    0.00    0.00  0.00  0.00

关键字段:

  • %util:设备利用率(>80%说明饱和)
  • await:平均I/O响应时间(>20ms性能差)
  • avgqu-sz:平均队列长度(>2说明排队)

3. lsof- 查看打开的文件和网络连接

语法:

bash 复制代码
lsof [选项] [文件/端口/进程]

核心选项:

  • -i:查看网络连接
  • -p PID:查看进程打开的文件
  • -u 用户:查看用户打开的文件
  • +D 目录:查看目录下被打开的文件
  • -c 进程名:按进程名过滤

案例1:查看端口占用

bash 复制代码
# 查看谁占用了8080端口
lsof -i :8080

# 输出:
# COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
# java    12345 root   21u  IPv6  12345      0t0  TCP *:webcache (LISTEN)

# 查看TCP连接
lsof -i tcp

# 查看ESTABLISHED连接
lsof -i tcp | grep ESTABLISHED

案例2:查看进程文件句柄

bash 复制代码
# 查看nginx打开了哪些文件
lsof -p $(pgrep nginx | head -1)

# 统计句柄数(排查泄漏)
lsof -p 12345 | wc -l
# 正常<1000,>65535会报"Too many open files"

案例3:删除被占用的文件

bash 复制代码
# 文件被删除但空间未释放(被进程占用)
lsof | grep deleted
# 输出:
# nginx   12345 root    3w   REG  253,0        0 123456 /var/log/nginx/error.log (deleted)

# 解决方法:重启对应进程
systemctl restart nginx

⚠️ 注意事项:

  • 🔥权限:普通用户只能查看自己的文件,root可查看所有
  • 性能lsof执行较慢,大批量排查用ss更快
  • 网络状态-i @IP:PORT可精确匹配远程地址
  • 文件句柄限制 :默认1024,高并发服务需调大ulimit -n

4. uptime- 系统负载快速查看

案例:

bash 复制代码
uptime
# 输出:
#  11:45:30 up 2 days, 4:30,  2 users,  load average: 0.80, 0.50, 0.30

# 查看更详细的启动时间
who -b
# 输出:system boot  2024-11-13 07:15

六、🏗️ 服务管理(systemd)

1. systemctl- systemd服务管理 ⭐⭐

语法:

bash 复制代码
systemctl [命令] [单元]

核心命令:

  • start:启动服务
  • stop:停止服务
  • restart:重启服务
  • reload:重载配置(不中断)
  • status:查看状态
  • enable:开机自启
  • disable:关闭自启
  • is-active:检查是否运行
  • is-enabled:检查是否自启

案例1:管理服务生命周期

bash 复制代码
# 启动nginx
systemctl start nginx

# 查看状态(含日志、PID)
systemctl status nginx
# 输出:
# ● nginx.service - The nginx HTTP and reverse proxy server
#    Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
#    Active: active (running) since Fri 2024-11-15 10:30:00 CST; 2h ago
#   Process: 1234 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
#  Main PID: 1235 (nginx)
#    CGroup: /system.slice/nginx.service
#            ├─1235 nginx: master process /usr/sbin/nginx
#            └─1236 nginx: worker process

# 停止服务
systemctl stop nginx

# 重启(平滑重启)
systemctl restart nginx

# 重载配置(nginx -s reload)
systemctl reload nginx

# 开机自启
systemctl enable nginx
# Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service

案例2:排查服务失败

bash 复制代码
# 服务启动失败,查看详细信息
systemctl status nginx.service -l
# -l: 显示完整日志

# 查看服务日志(journalctl)
journalctl -u nginx -f
# -f: 实时追踪 -u: 指定单元

# 列出所有失败的单元
systemctl --failed

案例3:查看服务依赖

bash 复制代码
# 查看nginx依赖哪些服务
systemctl list-dependencies nginx

# 查看哪些服务依赖nginx
systemctl list-dependencies --reverse nginx

⚠️ 注意事项:

  • 🔥reload vs restartreload不中断服务,但依赖应用支持(nginx支持,MySQL不支持)
  • 服务配置 :修改/usr/lib/systemd/system/nginx.service后需systemctl daemon-reload
  • 用户服务 :用户级服务在~/.config/systemd/user/
  • 资源隔离:systemd支持cgroup限制CPU/内存,比ulimit更强大

2. service & chkconfig- 传统服务管理(已废弃)

bash 复制代码
# CentOS 7仍兼容,但已指向systemctl
service nginx start          # 等同于 systemctl start nginx
service nginx status

chkconfig nginx on           # 等同于 systemctl enable nginx
chkconfig --list nginx

⚠️ 注意事项:

  • 已废弃 :CentOS 6遗产,CentOS 7应全面使用systemctl
  • 脚本兼容 :一些老脚本可能仍用service,底层已转发到systemd
  • 混合使用危险servicesystemctl混用可能状态不一致

七、🎯 综合实战案例

案例1:排查CPU 100%的恶意进程

bash 复制代码
# 1. 定位高CPU进程
top
# 假设发现PID 3001的cpu_web进程占用99%

# 2. 查看进程详细信息
ps -fp 3001
# UID        PID  PPID  C STIME TTY          TIME CMD
# root      3001     1 99 11:30 ?        00:05:12 /usr/bin/cpu_web --hidden

# 3. 查看父进程(PPID=1是systemd,说明是服务)
pstree -p | grep 3001
# systemd(1)───cpu_web(3001)

# 4. 查看打开的文件和网络连接
lsof -p 3001
# 发现连接境外IP

# 5. 查看进程启动时间和路径
ls -l /proc/3001/exe
# lrwxrwxrwx 1 root root 0 Nov 15 11:30 /proc/3001/exe -> /usr/bin/cpu_web

# 6. 定位并清理
# 如果是恶意程序:
# a. kill进程
kill -9 3001

# b. 查找相关文件
find / -name "*cpu_web*" -type f 2>/dev/null

# c. 检查定时任务
crontab -l
ls /etc/cron.d/

# d. 检查启动项
systemctl list-unit-files | grep cpu
/etc/rc.local

# e. 分析日志
journalctl -u cpu_web

案例2:优雅重启Java服务(不丢请求)

bash 复制代码
#!/bin/bash
# 平滑重启Tomcat

# 1. 找到Tomcat的master进程
TOMCAT_PID=$(pgrep -f "java.*tomcat")

# 2. 发送TERM信号,等待优雅关闭
kill -15 $TOMCAT_PID

# 3. 等待30秒或直到进程退出
for i in {1..30}; do
  if ! ps -p $TOMCAT_PID > /dev/null; then
    echo "Tomcat stopped gracefully"
    break
  fi
  echo "Waiting for Tomcat to stop... $i"
  sleep 1
done

# 4. 如果仍在运行,强制kill
if ps -p $TOMCAT_PID > /dev/null; then
  echo "Force killing Tomcat"
  kill -9 $TOMCAT_PID
fi

# 5. 启动新实例
systemctl start tomcat

案例3:监控并自动重启崩溃的服务

bash 复制代码
#!/bin/bash
# 监控nginx,崩溃后自动重启

while true; do
  if ! pgrep -x nginx > /dev/null; then
    echo "$(date): Nginx crashed, restarting..."
    systemctl restart nginx
    
    # 发送告警
    echo "Nginx restarted on $(hostname)" | mail -s "Nginx Alert" admin@example.com
  fi
  sleep 30
done

# 放入后台运行
nohup ./monitor.sh > /var/log/nginx_monitor.log 2>&1 &

案例4:分析进程内存泄漏

bash 复制代码
# 1. 监控进程内存增长
PID=12345
while true; do
  RSS=$(ps -p $PID -o rss=)
  echo "$(date): RSS=${RSS}KB" >> memory.log
  sleep 60
done

# 2. 生成内存转储(需gdb)
gdb -p $PID -batch -ex "gcore /tmp/process.core"

# 3. 分析内存映射
pmap $PID
# 查看哪些库占用内存

# 4. 检查句柄泄漏
lsof -p $PID | wc -l
# 持续增长说明有泄漏

案例5:限制进程的CPU使用率

bash 复制代码
# 方法1:cpulimit(需安装)
yum install -y cpulimit
cpulimit -p 3001 -l 50
# 限制PID 3001的CPU不超过50%

# 方法2:cgroups(systemd方式)
# 创建切片单元
nano /etc/systemd/system/stress.slice
# [Slice]
# CPUQuota=50%

# 运行服务时指定切片
systemctl set-property --runtime -- stress.service CPUQuota=50%

# 查看限制
systemd-cgtop

八、⚠️ 进程管理铁律与陷阱

1. 🔥 信号使用规范

  1. 先15后9 :永远先kill -15,无效再kill -9
  2. 禁止kill -9数据库 :MySQL/PostgreSQL用kill -9会导致数据损坏!
  3. 僵尸进程:无法kill,必须kill其父进程
  4. init进程:PID=1的systemd不可kill,系统会崩溃

2. 🔥 权限与提权

bash 复制代码
# 错误:普通用户kill root进程
kill 1
# bash: kill: (1) - Operation not permitted

# 正确:sudo kill
sudo kill 3001

# 查看可kill的进程
ps -eo pid,user,comm | grep $USER

3. 🔥 后台任务管理

  • disown:脱离终端的后台任务
bash 复制代码
./long_task.sh &
disown
# 关闭终端后任务继续运行
  • screen/tmux :真正的会话管理
bash 复制代码
# 安装tmux
yum install -y tmux

# 创建会话
tmux new -s mysession

# 分离会话(Ctrl+B, D)
# 重新连接
tmux attach -t mysession
# 完美替代nohup!

4. 🔥 性能分析黄金组合

bash 复制代码
# 快速诊断系统卡顿
uptime                          # 1. 看负载
vmstat 1 5                      # 2. 看wa和r队列
iostat -x 1                     # 3. 看%util
ps aux --sort=-%cpu | head -10  # 4. 看高CPU进程
ps aux --sort=-%mem | head -10  # 5. 看高内存进程
netstat -tuln | grep CLOSE_WAIT # 6. 看网络句柄泄漏
lsof | wc -l                    # 7. 看总句柄数

5. 🔥 systemd服务调试

bash 复制代码
# 服务启动失败,查看详细原因
systemctl status nginx.service -l
journalctl -u nginx.service -f

# 手动运行服务命令(对比差异)
/usr/sbin/nginx -t              # 测试配置
/usr/sbin/nginx                 # 直接启动看输出

# 环境变量差异
systemctl show-environment      # 查看systemd环境
cat /etc/systemd/system/nginx.service.d/*.conf

6. 🔥 禁止的危险操作

bash 复制代码
# 绝对禁止!
kill -9 -1          # kill所有进程(包括自己)
kill -9 1           # 尝试kill systemd
pkill -u root       # kill所有root进程(系统崩溃)
rm -rf /proc        # 删除procfs(内核数据丢失)
:(){ :|:& };:       # fork炸弹(定义函数不断fork自己)

九、📚 快速命令速查

需求 命令 示例
查看所有进程 ps aux `ps aux
动态监控 top top -u nginx
友好监控 htop htop
查找PID pgrep pgrep -f java
优雅终止 kill kill -15 1234
强制终止 kill -9 kill -9 1234(⚠️)
按名kill pkill pkill -f python
后台运行 & ./task.sh &
脱离终端 nohup nohup ./task.sh &
会话管理 tmux tmux new -s my
查看内存 free -h free -h
查看磁盘I/O iostat iostat -x 1
查看网络 ss ss -tnlp
查看句柄 lsof lsof -p 1234
启动服务 systemctl systemctl start nginx
服务状态 systemctl systemctl status nginx

🎓 总结 :进程管理是系统运维的核心技能!牢记:

  1. 查看优先 :先ps/top定位问题,再kill
  2. 优雅终止kill -15是绅士,kill -9是屠夫
  3. 后台隔离 :生产环境用tmux/screen,不用nohup
  4. systemd为王 :全面拥抱systemctl,告别service
  5. 监控预警wa>30%或load>CPU核心数×2立即排查

进程如人,需善待!强制kill易,数据恢复难!



📖原文: 生者为过客,逝者为归人。天地一逆旅,同悲万古尘。--《天相》

⌛怡然 : ...



🪁 LuminKu looks forward to seeing you again 🌌


相关推荐
毛甘木2 小时前
阿里云CentOS环境下Docker Compose详细使用教程
阿里云·docker·centos
nassi_2 小时前
GPIO标准库开发
linux
生信大表哥2 小时前
bulk RNA-Seq (4)合并表达矩阵
linux·生信·数信院生信服务器
9ilk3 小时前
【基于one-loop-per-thread的高并发服务器】--- 项目测试
运维·服务器·c++·后端·中间件
DeeplyMind3 小时前
虚拟化hypervisor:Xen简介
linux·virtualization·xen
property-3 小时前
服务器开荒:安装宝塔面板
运维·服务器
教练、我想打篮球4 小时前
05 2个路由器配置dhcp服务器+dhcp中继器配置两个子网的dhcp服务
运维·服务器
adnyting4 小时前
【Linux日新月异(二)】CentOS 7用户与用户组管理深度指南:保障系统安全的基石
linux·运维·centos
linuxxx1104 小时前
Centos环境中Django项目中gunicorn的配置和使用
django·centos·gunicorn