BSD 옵션을 사용하여 PS를 통해 PPID를 얻는 방법

BSD 옵션을 사용하여 PS를 통해 PPID를 얻는 방법

나는 "ps aux"의 모든 출력 헤더를 제공하지만 PPID를 포함하는 ps 문자열을 찾고 있습니다. 지금까지는 ps -ef를 사용해서만 PPID 열을 가져올 수 있습니다. 다양한 조합을 시도했지만 내 목표를 달성하는 조합을 찾지 못했습니다. 이것이 가능합니까?

답변1

이제 우리는 당신이 어떤 사람인지 압니다.진짜생각하다...

-o필요한 필드를 선택하는 데 사용됩니다 . 예를 들어:

$ ps -eo pid,ppid,%cpu,%mem,args
  PID  PPID %CPU %MEM COMMAND
    1     0  0.0  0.0 /usr/lib/systemd/systemd --system --deserialize 22
...more procs...
 1522  3205  0.0  0.0 nginx: worker process
 1523  3205  0.0  0.0 nginx: worker process
 1525  3205  0.0  0.0 nginx: worker process
 1527  3205  0.0  0.0 nginx: worker process
 1528  3205  0.0  0.0 nginx: worker process
 1529  3205  0.0  0.0 nginx: worker process
 3205     1  0.0  0.0 nginx: master process /usr/sbin/nginx
...more procs...

사용할 수 있는 필드의 전체 목록은 매뉴얼 페이지에 있습니다.

답변2

옵션 "-l" 또는 "-j"일까요? ("ps" 버전에 따라 다름)https://www.freebsd.org/cgi/man.cgi?ps(1)

답변3

나는 해결책을 찾은 것 같습니다(아직 필요한 사람이 있다면). RHEL/CentOS 및 파생 제품에서는 다음을 시도하십시오 # ps -fwaux. 모든 프로세스를 표시하지만 해당 상위 프로세스 아래에 하위 프로세스를 나열합니다. 이렇게 하면 프로세스를 원본과 연결하기 위해 PPID 열이 필요하지 않습니다. 이것이 도움이 되기를 바랍니다... 건배!

관련 정보