当前位置:首页>Linux>Linux进程管理:从混乱到有序的蜕变(详细)

Linux进程管理:从混乱到有序的蜕变(详细)

  • 2026-10-10 15:45:05
Linux进程管理:从混乱到有序的蜕变(详细)

      在Linux系统管理中,你是否曾经遇到过进程卡死、服务无法启动、或者系统资源占用过高的问题?
      进程管理和系统服务管理是Linux系统管理的核心技能,掌握这些技能不仅能保证系统稳定运行,还能提高工作效率。
      本文将详细介绍Linux进程管理和系统服务的核心命令和配置技巧,帮助你成为系统管理专家。

1. 进程查看工具

1.1 基础进程查看

ps命令查看进程:



1
2
3
4
5
6
7
8
9
10
11

# 查看当前用户的进程
ps

# 查看所有进程
ps -ef

# 查看进程树
ps -ef --forest

# 查看进程详细信息
ps -aux


top命令实时监控:



1
2
3
4
5
6
7
8
9
10
11

# 启动top命令
top

# 按CPU使用率排序
top -o cpu

# 按内存使用率排序
top -o mem

# 设置刷新间隔
top -d 5


htop命令交互式监控:



1
2
3
4
5
6
7
8
9
10
11

# 启动htop命令
htop

# 按CPU排序
F6 → CPU

# 按内存排序
F6 → MEM

# 杀死进程
F9 → kill


1.2 高级进程查看

pstree查看进程树:



1
2
3
4
5
6
7
8

# 查看进程树
pstree

# 显示PID
pstree -p

# 显示完整路径
pstree -a


pgrep进程查找:



1
2
3
4
5
6
7
8

# 查找进程
pgrep nginx

# 查找进程并显示PID
pgrep -l nginx

# 查找进程并显示详细信息
pgrep -fl nginx


systemctl查看服务:



1
2
3
4
5
6
7
8

# 查看所有服务
systemctl list-units

# 查看运行中的服务
systemctl list-units --state=running

# 查看失败的服务
systemctl list-units --state=failed


2. 进程管理命令

2.1 进程控制

kill命令终止进程:



1
2
3
4
5
6
7
8
9
10
11

# 终止进程
kill PID

# 强制终止进程
kill -9 PID

# 终止所有同名进程
killall nginx

# 按名称终止进程
pkill nginx


nice命令调整优先级:



1
2
3
4
5
6
7
8

# 以较高优先级启动进程
nice -n -5 command

# 以较低优先级启动进程
nice -n 5 command

# 修改已运行进程的优先级
renice -n 10 PID


nohup命令后台运行:



1
2
3
4
5
6
7
8
9
10
11

# 后台运行进程
nohup command > output.log 2>&1 &

# 查看后台进程
jobs

# 将后台进程调到前台
fg %1

# 将后台进程放到后台
bg %1


2.2 进程调度

screen会话管理:



1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 创建新会话
screen -S session_name

# 查看所有会话
screen -ls

# 恢复会话
screen -r session_name

# 分离会话
screen -d session_name

# 退出会话
exit


tmux会话管理:



1
2
3
4
5
6
7
8
9
10
11

# 创建新会话
tmux new -s session_name

# 查看所有会话
tmux ls

# 附加会话
tmux attach -t session_name

# 分离会话
tmux detach


3. 系统服务管理

3.1 systemd基础

systemctl命令:



1
2
3
4
5
6
7
8
9
10
11

# 启动服务
systemctl start nginx

# 停止服务
systemctl stop nginx

# 重启服务
systemctl restart nginx

# 重新加载配置
systemctl reload nginx


服务状态查看:



1
2
3
4
5
6
7
8

# 查看服务状态
systemctl status nginx

# 查看服务详细信息
systemctl show nginx

# 查看服务日志
journalctl -u nginx


3.2 服务配置

服务文件管理:



1
2
3
4
5
6
7
8
9
10
11

# 创建服务文件
sudo nano /etc/systemd/system/myservice.service

# 启用服务
systemctl enable nginx

# 禁用服务
systemctl disable nginx

# 检查服务是否启用
systemctl is-enabled nginx


服务文件示例:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

[Unit]
Description=My Custom Service
After=network.target

[Service]
Type=simple
User=nginx
Group=nginx
ExecStart=/usr/bin/mycommand
ExecReload=/usr/bin/mycommand --reload
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target


3.3 服务依赖管理

依赖关系配置:



1
2
3
4
5
6
7
8

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

# 查看反向依赖
systemctl list-dependencies --reverse nginx

# 添加依赖关系
systemctl add-requires nginx.service network.target


服务启动顺序:



1
2
3
4
5
6
7
8

# 设置启动顺序
[Unit]
After=network.target
Before=nginx.service

[Service]
After=network.target network-online.target
Before=nginx.service


4. 进程调度优化

4.1 CPU调度

进程优先级调整:



1
2
3
4
5
6
7
8

# 查看进程优先级
ps -eo pid,ppid,cmd,pri,ni

# 调整进程优先级
renice -n -10 PID

# 设置实时优先级
chrt -f 50 PID


CPU亲和性设置:



1
2
3
4
5
6
7
8

# 查看CPU亲和性
taskset -cp PID

# 设置CPU亲和性
taskset -c 0-3 PID

# 绑定进程到特定CPU
taskset -c 1 command


4.2 内存管理

内存限制设置:



1
2
3
4
5

# 设置内存限制
ulimit -v 1048576  # 限制为1GB

# 设置进程内存限制
prlimit --as=1073741824 command


内存优化:



1
2
3
4
5
6
7
8

# 查看内存使用情况
free -h

# 查看内存详细信息
vmstat

# 查看内存映射
cat /proc/PID/maps


5. 资源占用优化

5.1 系统资源监控

资源监控工具:



1
2
3
4
5
6
7
8
9
10
11

# 监控CPU使用率
top

# 监控内存使用
free -h

# 监控磁盘I/O
iostat

# 监控网络I/O
netstat -i


资源使用分析:



1
2
3
4
5
6
7
8
9
10
11

# 分析CPU使用情况
sar -u

# 分析内存使用情况
sar -r

# 分析磁盘I/O情况
sar -b

# 分析网络使用情况
sar -n DEV


5.2 进程资源限制

资源限制设置:



1
2
3
4
5
6
7
8

# 设置进程资源限制
prlimit --cpu=300 --as=1073741824 command

# 设置文件描述符限制
ulimit -n 1024

# 设置进程数限制
ulimit -u 512


cgroups资源控制:



1
2
3
4
5
6
7
8
9
10
11

# 创建cgroup
sudo cgcreate -g cpu,memory:/mygroup

# 设置CPU限制
sudo cgset -r cpu.cfs_quota_us=100000 mygroup

# 设置内存限制
sudo cgset -r memory.limit_in_bytes=1G mygroup

# 运行进程
sudo cgexec -g cpu,memory:mygroup command


6. 服务自动重启配置

6.1 服务重启策略

重启策略配置:



1
2
3
4
5
6
7
8
9
10
11
12
13

[Unit]
Description=My Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/mycommand
Restart=always          # 总是重启
RestartSec=10          # 重启间隔
RestartPreventExitStatus=1  # 不重启的状态码

[Install]
WantedBy=multi-user.target


重启条件设置:



1
2
3
4
5

# 设置重启条件
Restart=on-failure     # 失败时重启
Restart=on-abnormal   # 异常时重启
Restart=on-watchdog   # 看门狗超时时重启
Restart=on-success    # 成功时重启


6.2 服务健康检查

健康检查配置:



1
2
3
4
5
6
7
8
9
10
11
12
13

[Unit]
Description=My Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/mycommand
ExecStartPost=/usr/bin/health_check.sh
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target


健康检查脚本:



1
2
3
4
5
6
7

#!/bin/bash
# 健康检查脚本
if pgrep -f "mycommand" > /dev/null; then
    exit 0
else
    exit 1
fi


7. 进程卡死处理

7.1 进程状态分析

进程状态查看:



1
2
3
4
5
6
7
8

# 查看进程状态
ps -eo pid,stat,cmd

# 查看进程详细信息
cat /proc/PID/status

# 查看进程调用栈
cat /proc/PID/stack


进程状态分析:



1
2
3
4
5
6
7
8

# 查看僵尸进程
ps -eo pid,stat | grep Z

# 查看睡眠进程
ps -eo pid,stat | grep D

# 查看停止进程
ps -eo pid,stat | grep T


7.2 进程终止方法

强制终止进程:



1
2
3
4
5
6
7
8

# 强制终止进程
kill -9 PID

# 终止进程树
pkill -9 -P PID

# 终止所有同名进程
killall -9 nginx


进程调试:



1
2
3
4
5
6
7
8

# 使用strace调试
strace -p PID

# 使用gdb调试
gdb -p PID

# 使用ltrace调试
ltrace -p PID


8. 系统性能监控

8.1 系统监控工具

系统监控命令:



1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 查看系统负载
uptime

# 查看CPU使用率
top

# 查看内存使用
free -h

# 查看磁盘使用
df -h

# 查看网络连接
netstat -an


性能分析工具:



1
2
3
4
5
6
7
8
9
10
11

# 系统性能分析
dstat

# 磁盘I/O分析
iostat

# 网络性能分析
nethogs

# 进程性能分析
perf


8.2 性能调优建议

CPU调优:



1
2
3
4
5
6
7
8

# 调整CPU调度策略
echo "deadline" > /sys/block/sda/queue/scheduler

# 调整CPU频率
cpufreq-set -g performance

# 调整CPU亲和性
taskset -c 0-3 command


内存调优:



1
2
3
4
5
6
7
8

# 调整内存使用策略
echo "1" > /proc/sys/vm/swappiness

# 调整内存缓存
echo "50" > /proc/sys/vm/vfs_cache_pressure

# 调整内存分配策略
echo "0" > /proc/sys/vm/overcommit_memory


总结

      Linux进程管理与系统服务管理是系统管理的核心技能,掌握这些技能不仅能保证系统稳定运行,还能提高工作效率。

关键要点回顾:

  1. 1. 进程查看:掌握ps、top、htop、pstree等查看工具
  2. 2. 进程控制:熟练使用kill、nice、nohup、screen等控制命令
  3. 3. 服务管理:掌握systemctl命令和服务配置
  4. 4. 资源优化:了解CPU调度、内存管理、资源限制等优化技巧
  5. 5. 性能监控:掌握系统监控工具和性能分析方法

最新文章

随机文章