代码之家  ›  专栏  ›  技术社区  ›  learner

如何在linux中重定向ps命令以查看除/proc之外的其他文件夹

  •  0
  • learner  · 技术社区  · 7 年前

    我正在使用docker容器,并且我已经将主机/过程安装到了容器/主机/过程。现在,我希望docker容器中的ps命令在/host/proc而不是/proc中查找进程。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Alexandre Fenyo    7 年前

    这个 /proc /bin/ps 二进制文件。 因此,您需要重新编译

    按照以下步骤重新编译 在装载主机的容器内 /过程 使用这个新的 ps

    在本例中,我不使用 /host/proc 但是 /prod 我还使用了一个基于OpenSUSE Leap 42.1的容器,因为您没有描述正在使用的基本图像。

    1-在docker主机上,首先下载/bin/ps源:

    fenyo@myhost# mkdir /root/git
    fenyo@myhost# cd /root/git
    fenyo@myhost# git clone https://gitlab.com/procps-ng/procps.git
    fenyo@myhost# cd procps
    

    "/proc 通过 "/prod 在**/*.c中

    /产品 在容器中

    fenyo@myhost# docker run -v /proc:/prod -v /root/git/procps:/root/git/procps -t -i --rm opensuse:42.1 bash
    

    /箱子/ps

    bash-4.2# cd /root/git/procps
    bash-4.2# zypper install -y gettext gettext-tools autoconf libtool pkg-config gcc make
    bash-4.2# ./autogen.sh
    bash-4.2# ./configure --without-ncurses
    bash-4.2# make
    

    现在,你可以使用 /root/git/procps/ps/pscommand 作为替代 /产品 而不是 pscommand ,您将从主机而不是容器中获得进程列表:

    bash-4.2# ps -auxgww
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.0  20064  3076 ?        Ss   23:20   0:00 bash
    root      5199  0.0  0.0  33340  2996 ?        R+   23:24   0:00 ps -auxgww
    
    bash-4.2# /root/git/procps/ps/pscommand -auxgww
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.0  33620  3956 ?        Ss   Jul03   1:13 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
    root         2  0.0  0.0      0     0 ?        S    Jul03   0:01 [kthreadd]
    root         3  0.0  0.0      0     0 ?        R    Jul03   4:44 [ksoftirqd/0]
    root         5  0.0  0.0      0     0 ?        S<   Jul03   0:01 [kworker/0:0H]
    root         7  0.0  0.0      0     0 ?        S    Jul03  15:27 [rcu_preempt]
    root         8  0.0  0.0      0     0 ?        S    Jul03   0:00 [rcu_sched]
    root         9  0.0  0.0      0     0 ?        S    Jul03   0:00 [rcu_bh]
    root        10  0.0  0.0      0     0 ?        S    Jul03  10:02 [rcuop/0]
    root        11  0.0  0.0      0     0 ?        S    Jul03   0:00 [rcuos/0]
    root        12  0.0  0.0      0     0 ?        S    Jul03   0:00 [rcuob/0]
    root        13  0.0  0.0      0     0 ?        S    Jul03   0:06 [migration/0]
    root        14  0.0  0.0      0     0 ?        S    Jul03   0:07 [watchdog/0]
    root        15  0.0  0.0      0     0 ?        S    Jul03   0:06 [watchdog/1]
    root        16  0.0  0.0      0     0 ?        S    Jul03   0:04 [migration/1]
    root        17  0.0  0.0      0     0 ?        S    Jul03   1:07 [ksoftirqd/1]
    root        19  0.0  0.0      0     0 ?        S<   Jul03   0:00 [kworker/1:0H]
    root        20  0.0  0.0      0     0 ?        S    Jul03   2:42 [rcuop/1]
    root        21  0.0  0.0      0     0 ?        S    Jul03   0:00 [rcuos/1]
    root        22  0.0  0.0      0     0 ?        S    Jul03   0:00 [rcuob/1]
    root        23  0.0  0.0      0     0 ?        S    Jul03   0:05 [watchdog/2]
    root        24  0.0  0.0      0     0 ?        S    Jul03   0:06 [migration/2]
    root        25  0.0  0.0      0     0 ?        S    Jul03   0:48 [ksoftirqd/2]
    root        27  0.0  0.0      0     0 ?        S<   Jul03   0:00 [kworker/2:0H]
    root        28  0.0  0.0      0     0 ?        S    Jul03   7:32 [rcuop/2]
    root        29  0.0  0.0      0     0 ?        S    Jul03   0:00 [rcuos/2]
    root        30  0.0  0.0      0     0 ?        S    Jul03   0:00 [rcuob/2]
    root        31  0.0  0.0      0     0 ?        S    Jul03   0:05 [watchdog/3]
    root        32  0.0  0.0      0     0 ?        S    Jul03   0:05 [migration/3]
    root        33  0.0  0.0      0     0 ?        S    Jul03   0:37 [ksoftirqd/3]
    [...]