如何在 alpine 中使用 ps 命令获取特定 PID 的进程名称
How can I get process name of specific PID with ps command in alpine
以ubuntu为基础docker/os
$ ps
PID USER TIME COMMAND
1 postgres 0:00 postgres
47 postgres 0:00 postgres: checkpointer process
48 postgres 0:00 postgres: writer process
49 postgres 0:00 postgres: wal writer process
50 postgres 0:00 postgres: autovacuum launcher process
51 postgres 0:00 postgres: stats collector process
52 postgres 0:00 postgres: bgworker: logical replication launcher
现在如果运行 ps -p 1 -o user=
,它会得到我PID 1 process USER postgres
$ ps -p 1 -o user=
postgres
这就是我在 ubuntu
中可以做的 image/os
现在
我真的在寻找一种方法来为基于 alpine
的图像做同样的事情。我可以在哪里 运行 ps
命令获取 PID 1 进程 USER.
我没有找到任何 docs/hints。
默认情况下,alpine 图像中有 ps
的非常切割版本。是busybox一:
/ # ps --help
BusyBox v1.27.2 (2017-12-12 10:41:50 GMT) multi-call binary.
Usage: ps [-o COL1,COL2=HEADER]
Show list of processes
-o COL1,COL2=HEADER Select columns for display
它只能显示具有定义列的输出。
如果你想使用uncut ps
,你需要先将它安装到alpine image:
/ # apk add --no-cache procps
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
(1/6) Installing libintl (0.19.8.1-r1)
(2/6) Installing ncurses-terminfo-base (6.0_p20171125-r0)
(3/6) Installing ncurses-terminfo (6.0_p20171125-r0)
(4/6) Installing ncurses-libs (6.0_p20171125-r0)
(5/6) Installing libproc (3.3.12-r3)
(6/6) Installing procps (3.3.12-r3)
Executing busybox-1.27.2-r7.trigger
OK: 13 MiB in 17 packages
现在,您可以随意使用它了:
/ # ps -p 1 -o user=
root
以ubuntu为基础docker/os
$ ps
PID USER TIME COMMAND
1 postgres 0:00 postgres
47 postgres 0:00 postgres: checkpointer process
48 postgres 0:00 postgres: writer process
49 postgres 0:00 postgres: wal writer process
50 postgres 0:00 postgres: autovacuum launcher process
51 postgres 0:00 postgres: stats collector process
52 postgres 0:00 postgres: bgworker: logical replication launcher
现在如果运行 ps -p 1 -o user=
,它会得到我PID 1 process USER postgres
$ ps -p 1 -o user=
postgres
这就是我在 ubuntu
中可以做的 image/os
现在
我真的在寻找一种方法来为基于 alpine
的图像做同样的事情。我可以在哪里 运行 ps
命令获取 PID 1 进程 USER.
我没有找到任何 docs/hints。
默认情况下,alpine 图像中有 ps
的非常切割版本。是busybox一:
/ # ps --help
BusyBox v1.27.2 (2017-12-12 10:41:50 GMT) multi-call binary.
Usage: ps [-o COL1,COL2=HEADER]
Show list of processes
-o COL1,COL2=HEADER Select columns for display
它只能显示具有定义列的输出。
如果你想使用uncut ps
,你需要先将它安装到alpine image:
/ # apk add --no-cache procps
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
(1/6) Installing libintl (0.19.8.1-r1)
(2/6) Installing ncurses-terminfo-base (6.0_p20171125-r0)
(3/6) Installing ncurses-terminfo (6.0_p20171125-r0)
(4/6) Installing ncurses-libs (6.0_p20171125-r0)
(5/6) Installing libproc (3.3.12-r3)
(6/6) Installing procps (3.3.12-r3)
Executing busybox-1.27.2-r7.trigger
OK: 13 MiB in 17 packages
现在,您可以随意使用它了:
/ # ps -p 1 -o user=
root