【发布时间】:2020-07-16 23:13:11
【问题描述】:
运行 nginx 高山映像。 ps 未安装且无权使用 apt-get 安装 ps。我有进程的pid。有什么办法可以找出进程的所有者是谁?
在这种情况下,我想弄清楚谁在运行 nginx 主进程。
【问题讨论】:
-
如果它实际上是一个基于高山的图像,我很惊讶
ps不可用。这是核心busybox二进制文件的一部分,几乎不可能删除。
运行 nginx 高山映像。 ps 未安装且无权使用 apt-get 安装 ps。我有进程的pid。有什么办法可以找出进程的所有者是谁?
在这种情况下,我想弄清楚谁在运行 nginx 主进程。
【问题讨论】:
ps 不可用。这是核心 busybox 二进制文件的一部分,几乎不可能删除。
使用ls在proc目录中查找进程所有者
ls -ld /proc/816
如果您有stat,您可以只显示所有者,并使用精美的格式:
stat -c '%U' /proc/775
avahi
奖励:打印您的用户名而不查看 $USER
stat -c '%U' /proc/$$
【讨论】:
您可以在/proc/YOUR_PROCESS_ID/status 中找到与进程相关的所有信息,其中YOUR_PROCESS_ID 是您的进程的PID。
因此,您可以通过简单地运行以下命令来获取进程的所有者:
cat /proc/YOUR_PROCESS_ID/status | grep "Uid" | cut -f 2 | id -nu
【讨论】:
您可以使用 docker top 命令获取有关在 docker 容器内运行的所有进程的详细信息
语法
docker top <container ID or name>
【讨论】:
从活动进程列表中检查如何?
top
如果要查找具体的进程名:
top | grep nginx
【讨论】: