【问题标题】:How to get all process ids without ps command on Linux如何在 Linux 上不使用 ps 命令获取所有进程 ID
【发布时间】:2015-12-31 00:47:50
【问题描述】:

如何在不使用ps的情况下获取所有进程ID(pid)(类似于:$ ps aux)。

在开发 dotnet 5 应用程序以在 docker 主机上运行时使用此功能的一个示例。 dotnet 运行时映像是一个非常精简的 Linux 映像,带有 bash,但没有 ps。在诊断应用程序问题时,查看正在运行的进程以及是否正确生成了单独的进程有时很有用。 ps 在此图像上不可用。有其他选择吗?

【问题讨论】:

    标签: linux shell command ps


    【解决方案1】:

    在 Linux 上,所有正在运行的进程都有“元数据”存储在 /proc filesystem 中。

    所有正在运行的进程id:

    shopt -s extglob # assuming bash
    (cd /proc && echo +([0-9]))
    

    【讨论】:

    • echo +([0-9]) 是什么意思。谢谢!
    • 当我打开文件系统时,除了 +([0-9]) 如何获取 pid 之外,还有一些其他信息。谢谢!真诚的!
    • 这是一个匹配一个或多个数字的 bash [扩展文件名通配模式]()。在 /proc 目录中,每个进程都有一个子目录(以数字 pid 命名),还有一堆其他的东西
    • 为什么这个问题因为不清楚而被关闭?问题的答案似乎非常清楚。我们可以重新提出这个问题吗?
    • 试试for exe in /proc/*/exe; do ls -l $exe; done
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多