🌌提供:
- Kimi K2 Thinking(网站: 大语言模型(Large Language Model, LLM),是当前人工智能领域的重要技术分支,专注于自然语言处理和生成任务。)【开源】「AL」〖✿✿✿✿✿〗
🔔说明: 本文内容由Kimi K2生成。AI创作虽经校对,仍难免疏漏或偏颇之处。若您发现错漏、或有任何建议,恳请不吝赐教。您的每一次指正,都是我改进与成长的重要指引。
📓摘要:
略...(有好建议的可以留言哦~~~(✿◕‿◕✿))
⚡ CentOS 7进程管理深度指南:掌控系统生命线
进程是Linux系统的灵魂!CentOS 7作为服务器系统,进程管理能力直接决定系统稳定性。从传统的
ps、top到现代的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 -ef :
aux显示%CPU/%MEM更直观,-ef显示PPID(父进程ID) - 僵尸进程 :
STAT为Z的进程无法kill,需kill其父进程 - 性能影响 :
ps aux瞬间快照,频繁执行有轻微开销 - 管道grep :总是看到grep自身,用
grep -v grep或pgrep过滤
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 pidof :
pgrep功能更强大,支持正则;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 restart :
reload不中断服务,但依赖应用支持(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 - 混合使用危险 :
service和systemctl混用可能状态不一致
七、🎯 综合实战案例
案例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. 🔥 信号使用规范
- 先15后9 :永远先
kill -15,无效再kill -9 - 禁止kill -9数据库 :MySQL/PostgreSQL用
kill -9会导致数据损坏! - 僵尸进程:无法kill,必须kill其父进程
- 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 |
🎓 总结 :进程管理是系统运维的核心技能!牢记:
- 查看优先 :先
ps/top定位问题,再kill - 优雅终止 :
kill -15是绅士,kill -9是屠夫 - 后台隔离 :生产环境用
tmux/screen,不用nohup - systemd为王 :全面拥抱
systemctl,告别service - 监控预警 :
wa>30%或load>CPU核心数×2立即排查
进程如人,需善待!强制kill易,数据恢复难!
📖原文: 生者为过客,逝者为归人。天地一逆旅,同悲万古尘。--《天相》
⌛怡然 : ...
🪁 LuminKu looks forward to seeing you again 🌌