← 返回首页
⚙️

Linux进程管理

📂 devops ⏱ 2 min 212 words

Linux进程管理

进程概念

进程是程序的一次执行实例,是Linux系统资源分配和调度的基本单位。

查看进程

ps命令

# 查看当前用户进程
ps -ef

# 查看详细信息
ps aux

# 查找特定进程
ps aux | grep nginx

# 按CPU使用排序
ps aux --sort=-%cpu | head -10

# 按内存使用排序
ps aux --sort=-%mem | head -10

top命令

# 动态查看进程
top

# 查找特定进程
top -p PID1,PID2

# 只显示特定用户的进程
top -u username

pstree命令

# 显示进程树
pstree

# 显示进程ID
pstree -p

进程控制

启动进程

# 后台运行
command &

# 使用nohup
nohup command &

# 使用screen
screen -S session_name
command
# Ctrl+A, D 分离会话
# screen -r session_name 恢复

停止进程

# 终止进程
kill PID

# 强制终止
kill -9 PID

# 按名称终止
killall process_name
pkill process_name

# 终止用户所有进程
pkill -u username

信号

信号 编号 说明
SIGHUP 1 重载配置
SIGINT 2 中断(Ctrl+C)
SIGKILL 9 强制终止
SIGTERM 15 正常终止
SIGSTOP 19 暂停
SIGCONT 18 继续

进程优先级

# 查看nice值
ps -el | grep nginx

# 启动时设置nice值
nice -n 10 command

# 修改运行中进程的nice值
renice 10 PID

nice值范围:-20(最高优先级)到19(最低优先级)

作业控制

# 查看后台作业
jobs

# 将前台作业放到后台
# Ctrl+Z
bg %1

# 将后台作业调到前台
fg %1

# 挂起/恢复作业
# Ctrl+Z 挂起
# fg 恢复

systemd服务管理

# 启动服务
systemctl start nginx

# 停止服务
systemctl stop nginx

# 重启服务
systemctl restart nginx

# 查看状态
systemctl status nginx

# 开机自启
systemctl enable nginx

# 禁止开机自启
systemctl disable nginx

# 查看所有服务
systemctl list-units --type=service

实践:进程监控脚本

#!/bin/bash
PROCESS="nginx"
MAX_CPU=80

while true; do
    CPU=$(ps aux | grep $PROCESS | grep -v grep | awk '{print $3}' | head -1)
    if (( $(echo "$CPU > $MAX_CPU" | bc -l) )); then
        echo "警告: $PROCESS CPU使用率过高: ${CPU}%"
    fi
    sleep 5
done

总结

进程管理是系统管理的核心技能。掌握进程的查看、控制和监控,对于系统运维和故障排查至关重要。