如何在 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

产生一个可解析的输出,其中包含进程用户、开始时间和命令等附加信息。