如何在 Linux 上不使用 ps 命令获取所有进程 ID
How to get all process ids without ps command on Linux
如何在不使用 ps
.
的情况下获取所有进程 ID (pid)(类似于:$ ps aux)
何时使用它的一个例子是在 docker 主机上为 运行 开发 dotnet 5 应用程序。 dotnet 运行time 图像是一个非常精简的 Linux 图像,有 bash
,但没有 ps
。诊断应用程序问题时,有时查看哪些进程正在 运行ning 以及是否已正确生成单独的进程很有用。 ps
在此图像上不可用。有其他选择吗?
在 Linux,所有 运行 进程都 "metadata" 存储在 /proc filesystem。
所有 运行 个进程 ID:
shopt -s extglob # assuming bash
(cd /proc && echo +([0-9]))
根据@FelixJongleur42 的评论,命令
ls -l /proc/*/exe
产生一个可解析的输出,其中包含进程用户、开始时间和命令等附加信息。
如何在不使用 ps
.
何时使用它的一个例子是在 docker 主机上为 运行 开发 dotnet 5 应用程序。 dotnet 运行time 图像是一个非常精简的 Linux 图像,有 bash
,但没有 ps
。诊断应用程序问题时,有时查看哪些进程正在 运行ning 以及是否已正确生成单独的进程很有用。 ps
在此图像上不可用。有其他选择吗?
在 Linux,所有 运行 进程都 "metadata" 存储在 /proc filesystem。
所有 运行 个进程 ID:
shopt -s extglob # assuming bash
(cd /proc && echo +([0-9]))
根据@FelixJongleur42 的评论,命令
ls -l /proc/*/exe
产生一个可解析的输出,其中包含进程用户、开始时间和命令等附加信息。