Linux进程管理

在 Linux 系统中,进程管理是系统运维和日常操作的重要部分。以下是常用的进程管理命令及其用途:


1. 查看进程


2. 终止进程


3. 进程优先级


4. 后台进程管理


5. 进程搜索


6. 监控工具


7. 其他实用命令


常见场景示例

  1. 终止失控的进程

    ps aux | grep "bad_process"  # 查找 PID
    kill -9 PID
    
  2. 后台运行并保存日志

    nohup python script.py > output.log 2>&1 &
    
  3. 监控高 CPU 进程

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

掌握这些命令后,你可以高效地管理 Linux 系统中的进程。如果需要更详细的信息,可以通过 man 命令名(如 man ps)查看手册。

在 Linux 中,查看和管理进程的详细信息是系统管理的重要任务。以下是 查看进程详情 的常用命令和技巧,涵盖进程的资源占用、打开文件、环境变量、运行状态等关键信息。


1. 查看进程基本信息

(1) ps(进程快照)

查看进程的 PID、CPU、内存、启动命令 等基础信息:

ps aux | grep <进程名>     # 模糊匹配进程(常用)
ps -ef | grep <进程名>     # 标准格式查看
ps -p <PID> -o pid,ppid,cmd,%cpu,%mem,stat  # 查看指定进程的详细信息

(2) top / htop(实时监控)

动态查看进程的 资源占用排名(CPU、内存等):

top                          # 默认按 CPU 排序
top -p <PID>                 # 监控指定 PID
htop                         # 交互式增强版(支持鼠标操作)

2. 查看进程的详细属性

(1) /proc/<PID> 目录

Linux 将所有进程的详细信息映射到 /proc/<PID>/ 目录下,可直接查看:

ls /proc/<PID>               # 查看进程的详细信息文件
cat /proc/<PID>/status       # 进程状态(名称、PID、内存等)
cat /proc/<PID>/cmdline      # 查看进程的完整启动命令
cat /proc/<PID>/environ      # 查看进程的环境变量

(2) pmap(内存映射)

查看进程的 内存占用分布

pmap -x <PID>                # 显示详细内存映射

3. 查看进程打开的文件和网络连接

(1) lsof(列出打开文件)

查看进程打开的文件、目录、网络连接等:

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

(2) netstat / ss(网络连接)

查看进程的 网络连接状态

netstat -tulnp | grep <PID>  # 查看进程的网络连接(旧版)
ss -tulnp | grep <PID>       # 更快的替代方案(推荐)

4. 查看进程的线程和调用栈

(1) pstree(进程树)

显示进程的 父子关系 和线程:

pstree -p <PID>              # 树状显示进程及线程

(2) strace(系统调用跟踪)

监控进程的 系统调用(调试用):

strace -p <PID>              # 实时跟踪进程的系统调用
strace -e open,read <命令>   # 跟踪命令的特定系统调用

(3) gdb(调试器附加)

深入分析进程的运行状态(需谨慎使用):

gdb -p <PID>                 # 附加到运行中的进程

5. 查看进程的资源限制

(1) ulimit

查看当前 shell 的资源限制:

ulimit -a                    # 显示所有限制(如打开文件数、栈大小等)

(2) /proc/<PID>/limits

查看指定进程的资源限制:

cat /proc/<PID>/limits       # 显示进程的软/硬限制

6. 统计进程的资源使用

(1) pidstat(综合监控)

监控进程的 CPU、内存、IO 等(需安装 sysstat):

pidstat -p <PID> 1           # 每秒刷新一次统计信息
pidstat -d -p <PID>          # 监控磁盘 I/O

(2) ps -eo(自定义输出)

按需显示进程的特定字段:

ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%mem | head  # 按内存排序

常见问题排查示例

  1. 进程卡死

    top                        # 找到高 CPU/内存的 PID
    strace -p <PID>            # 检查系统调用是否阻塞
    kill -9 <PID>              # 强制终止
    
  2. 内存泄漏

    pmap -x <PID>              # 查看内存分布
    cat /proc/<PID>/status | grep VmRSS  # 检查实际内存占用
    
  3. 端口冲突

    lsof -i :8080              # 查看占用端口的进程
    

总结

需求 命令
查看进程基本信息 ps aux / top
查看进程环境变量 cat /proc/<PID>/environ
查看打开的文件 lsof -p <PID>
监控资源占用 pidstat / htop
分析系统调用 strace -p <PID>
查看网络连接 ss -tulnp / netstat

通过组合这些命令,你可以全面掌握 Linux 进程的详细状态!


Revision #3
Created 7 June 2025 03:08:17 by Admin
Updated 7 June 2025 03:14:12 by Admin