插件窝 干货文章 linux查看进程执行情况

linux查看进程执行情况

进程 查看 bash 系统 434    来源:    2025-04-05

在Linux系统中,查看进程执行情况有多种常用命令和工具,以下是详细的分类说明:


1. 基础进程查看命令

ps(Process Status)

ps aux                 # 查看所有用户的所有进程(BSD格式)
ps -ef                 # 查看所有进程(标准UNIX格式)
ps -u <用户名>         # 查看指定用户的进程
ps -p <PID> -o lstart  # 查看进程的启动时间
  • 关键字段
    PID(进程ID)、%CPU(CPU占用)、%MEM(内存占用)、COMMAND(命令)、STAT(进程状态,如S=睡眠、R=运行)。

top / htop(动态监控)

top                    # 实时动态查看进程(按CPU排序)
htop                   # 增强版top(需安装:`sudo apt install htop`)
  • 操作键
    P(按CPU排序)、M(按内存排序)、q(退出)、k(杀死进程)。

2. 进程详细信息

pstree(树形结构)

pstree -p              # 显示进程树(包含PID)
pstree <用户名>        # 查看指定用户的进程树

pgrep / pkill(快速查找/终止)

pgrep -l <进程名>      # 根据名称查找PID(如 `pgrep -l nginx`)
pkill <进程名>         # 终止指定名称的进程

3. 进程资源占用

pidstat(详细资源统计)

pidstat -u -p <PID> 1  # 查看CPU使用(每秒刷新)
pidstat -r -p <PID>    # 查看内存使用
pidstat -d -p <PID>    # 查看磁盘I/O
  • 安装sudo apt install sysstat(基于sysstat包)。

vmstat(系统整体资源)

vmstat 1               # 每秒刷新系统资源(CPU、内存、I/O等)

4. 进程文件与网络

lsof(打开的文件/网络连接)

lsof -p <PID>          # 查看进程打开的文件
lsof -i :80            # 查看占用80端口的进程

netstat / ss(网络连接)

netstat -tulnp         # 查看监听端口及对应进程
ss -tulnp              # 更快的替代工具(推荐)

5. 进程调试与跟踪

strace(系统调用跟踪)

strace -p <PID>        # 跟踪进程的系统调用
strace -c <命令>       # 统计命令执行的系统调用

gdb(高级调试)

gdb -p <PID>           # 附加到进程进行调试(需权限)

6. 日志与历史记录

journalctl(Systemd日志)

journalctl -u <服务名> # 查看服务的日志(如 `-u nginx`)

/var/log 目录

cat /var/log/syslog    # 查看系统日志(Ubuntu/Debian)
cat /var/log/messages  # 查看系统日志(CentOS/RHEL)

常用组合示例

# 查找并杀死占用CPU高的进程
ps aux | sort -nk +3 | tail
kill -9 <PID>

# 持续监控某进程的资源
watch -n 1 "ps -p <PID> -o %cpu,%mem,cmd"

总结表格

需求 命令
快速查看所有进程 ps auxtop
查看进程树 pstree -p
实时监控资源 htoppidstat
网络连接 ss -tulnp
跟踪系统调用 strace -p <PID>
杀死进程 pkill <进程名>

根据具体需求选择合适的工具,组合使用能更高效地分析问题!