游乐游手机版
首页/系统平台/文章详情

Linux中查看所有运行进程及启动参数的方法

时间:2026-08-18 07:36
ps -ef | grep nginx 基本是判断 Nginx 是否已经启动时最常用的命令之一,执行后通常可以看到主进程和工作进程;不过为了避免把 grep 自己也匹配出来,更推荐使用 ps -ef | grep [n]ginx ;此外,最好再结合 ps -eo pid,args 一起查看,确认拿

ps -ef | grep nginx 基本是判断 Nginx 是否已经启动时最常用的命令之一,执行后通常可以看到主进程和工作进程;不过为了避免把 grep 自己也匹配出来,更推荐使用 ps -ef | grep '[n]ginx';此外,最好再结合 ps -eo pid,args 一起查看,确认拿到的是完整的启动命令和参数。

如何在Linux中查看所有的运行进程及其参数

如果想直接查看 Linux 进程的命令行参数,需要使用 ps 的 -f 或 -eo 并配合 args 字段,而不是默认的 ps aux —— 因为后者经常会截断过长命令,无法完整显示启动参数。

ps -ef 能查看完整启动参数,但要注意字段顺序和命令截断问题

ps -ef 是 Linux 查看进程信息时最常用、也相对稳妥的起点,它采用 SysV 风格输出,CMD 列默认会显示完整命令行(包含全部参数),前提是终端宽度足够,且没有受到 shell 自动换行的干扰。

  • 字段顺序固定:UID、PID、PPID、C、STIME、TTY、TIME、CMD
  • 如果某条命令特别长(例如包含大量环境变量、长路径或复杂参数),ps 仍然可能发生截断 —— 这时不能只靠拉宽终端,而应改用 -eo 自定义输出字段
  • ps -ef | grep nginx 会把 grep 自身那一行也匹配出来,建议使用 ps -ef | grep '[n]ginx' 来规避这个问题

ps -eo pid,cmd --sort=-pid 可精准控制输出列,减少截断风险

如果想确保看到每个进程完整的启动命令,最好显式指定 cmd 或 args 字段,并尽量避免默认输出宽度带来的限制:

  • ps -eo pid,cmd:只输出 PID 和完整命令行,列更简洁,适合后续管道处理或脚本分析
  • ps -eo pid,args 的效果与 cmd 基本一致,但语义更清晰(args 更强调命令行参数)
  • 加上 --sort=-pid 可以按 PID 降序排列,便于快速定位最近启动的新进程
  • 注意:ps -eo pid,comm 只显示二进制名称(如 ja va),不会包含启动参数,使用时不要混淆

遇到 systemd 服务时,ps 看不到原始参数?可结合 systemctl show

像 docker.service 这类由 systemd 管理的服务,在 ps 中通常只能看到类似 /usr/bin/dockerd 这样的进程名;不过不要被这个表象误导,真正的启动参数通常定义在 unit 文件里,ps 并不会把这些配置内容完整还原出来。

  • 查看真实启动参数:执行 systemctl show --property=ExecStart docker.service
  • 查看完整环境与参数配置:使用 systemctl cat docker.service 查看 unit 文件内容
  • 如果服务已经启动但参数被覆盖(例如通过 systemctl set-environment),还需要结合 systemctl show --property=Environment
  • ps 显示的是进程当前实际执行的命令,而不是 systemd 解析后的最终配置结果 —— 两者在某些场景下可能并不完全一致

procfs 是最权威的来源,但不要直接 cat /proc/*/cmdline

每个进程的完整命令行参数实际保存在 /proc//cmdline 中,以 null 字节分隔,可读取但不适合直接 cat —— 否则容易出现乱码,甚至影响终端显示。

  • 更安全的读取方式:tr '' ' ' < /proc/1234/cmdline | sed 's/ $//'
  • 批量查看所有进程参数:for pid in /proc/[0-9]*; do echo "$(basename $pid): $(tr '' ' ' < $pid/cmdline 2>/dev/null)"; done | head -20
  • 注意:/proc//cmdline 可能为空(例如内核线程),也可能因权限不足而无法读取(非 root 用户通常看不到其他用户的进程详情)
  • 这是查看进程参数最权威的来源,但日常排查时优先使用 ps -eo pid,args 会更高效,因为它底层就是读取该文件并进行了格式化展示
真正难的往往不是“如何查看 Linux 进程参数”,而是判断你看到的参数是否已经被重写或覆盖 —— 例如容器内进程的 args 究竟来自镜像默认定义,还是在 docker run 时被覆盖;再比如 Ja va 进程里的 -D 参数是否在启动后通过 JMX 被动态修改。这种情况下,仅查看 ps 输出通常还不够,还需要结合 /proc//environ 以及应用自身的状态接口综合分析。
来源:https://www.php.cn/faq/2966906.html
上一篇Ubuntu快捷键冲突如何解决与设置工具使用指南 下一篇Mac如何关闭专注模式过滤条件设置
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。