【发布时间】:2015-12-31 00:47:50
【问题描述】:
如何在不使用ps的情况下获取所有进程ID(pid)(类似于:$ ps aux)。
在开发 dotnet 5 应用程序以在 docker 主机上运行时使用此功能的一个示例。 dotnet 运行时映像是一个非常精简的 Linux 映像,带有 bash,但没有 ps。在诊断应用程序问题时,查看正在运行的进程以及是否正确生成了单独的进程有时很有用。 ps 在此图像上不可用。有其他选择吗?
【问题讨论】:
如何在不使用ps的情况下获取所有进程ID(pid)(类似于:$ ps aux)。
在开发 dotnet 5 应用程序以在 docker 主机上运行时使用此功能的一个示例。 dotnet 运行时映像是一个非常精简的 Linux 映像,带有 bash,但没有 ps。在诊断应用程序问题时,查看正在运行的进程以及是否正确生成了单独的进程有时很有用。 ps 在此图像上不可用。有其他选择吗?
【问题讨论】:
在 Linux 上,所有正在运行的进程都有“元数据”存储在 /proc filesystem 中。
所有正在运行的进程id:
shopt -s extglob # assuming bash
(cd /proc && echo +([0-9]))
【讨论】:
for exe in /proc/*/exe; do ls -l $exe; done