进程管理
→ 返回 Linux
查看进程
ps aux # 所有进程详情
ps -ef # 标准格式,含父进程 PID
ps aux | grep java # 过滤特定进程
# 动态监控
top # 实时资源使用(按 M 按内存排序,P 按 CPU)
htop # top 增强版(需安装)
# 进程树
pstree -p # 树形显示进程及 PIDps aux 输出字段:
| 字段 | 说明 |
|---|---|
| USER | 所属用户 |
| PID | 进程 ID |
| %CPU | CPU 占用率 |
| %MEM | 内存占用率 |
| VSZ | 虚拟内存(KB) |
| RSS | 物理内存(KB) |
| STAT | 进程状态(S睡眠 R运行 Z僵尸 D不可中断) |
| COMMAND | 启动命令 |
发送信号
kill -9 <PID> # SIGKILL 强制终止
kill -15 <PID> # SIGTERM 优雅终止(默认)
kill -1 <PID> # SIGHUP 重新加载配置
killall nginx # 按名称终止所有匹配进程
pkill -f "java.*app" # 按完整命令行匹配并终止
# 查看可用信号
kill -l前后台控制
command & # 后台运行
jobs # 查看后台任务
fg %1 # 将任务 1 调到前台
bg %1 # 继续后台运行任务 1
Ctrl+Z # 暂停当前前台进程
Ctrl+C # 终止当前前台进程nohup / disown
# 挂起后仍运行,输出到 nohup.out
nohup java -jar app.jar &
# 指定输出文件
nohup java -jar app.jar > /var/log/app.log 2>&1 &
# 让已运行的后台任务脱离终端
disown -h %1优先级
nice -n 10 command # 以较低优先级启动(-20~19,值越小优先级越高)
renice -5 -p <PID> # 调整运行中进程的优先级查看进程资源
# 打开的文件 / 端口
lsof -p <PID> # 进程打开的所有文件
lsof -i :8080 # 占用 8080 端口的进程
# 进程详细状态
cat /proc/<PID>/status
# 线程
ps -T -p <PID> # 进程的线程列表systemd 管理服务进程
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl status nginx
systemctl enable nginx # 开机自启
systemctl disable nginx
journalctl -u nginx -f # 实时查看服务日志
journalctl -u nginx --since "1 hour ago"