ps의 -p 옵션

ps의 -p 옵션

-pLinux에서 이 옵션을 생략 하면 ps숫자가 암시적으로 제공됩니다.

man ps설명하다

      123    Identical to --pid 123.

그리고

      --pid pidlist
             Select by process ID.  Identical to -p and p.

그러나 여전히 다른 출력을 제공합니다.

test@debian:~$ ps 26379
  PID TTY      STAT   TIME COMMAND
26379 pts/14   Ss     0:00 bash
test@debian:~$ ps -p 26379
  PID TTY          TIME CMD
26379 pts/14   00:00:00 bash

이것이 어딘가에 문서화되어 있습니까?

답변1

이는 구현에 따라 다릅니다 ps.

적어도FreeBSD 추신그리고procps ps, Linux에서 사용됨:

1   UNIX options, which may be grouped and must be preceded by a dash.
2   BSD options, which may be grouped and must not be used with a dash.
3   GNU long options, which are preceded by two dashes.

그래서 당신이 할 때 :

ps 123

psBSD 스타일을 원한다고 가정하고 출력 프로세스 상태 열에 추가 하고 실행 파일 이름 대신 STAT명령 args를 표시합니다 . SysV 스타일을 원한다고 가정하고 을 사용 하십시오 .COMMANDCMD-p 123ps


맥 OSX ps이 동작은 구현에 의해 문서화되지 않지만 FreeBSD와 유사하게 동작합니다 ps.


많은 구현에서 다음을 사용하여 기본 스타일을 재정의할 수 있습니다.PS_FORMAT바꾸다:

# SysV style when using dash `-` in arguments
$ ps -p 1
    PID TTY          TIME CMD
      1 ?        00:00:01 systemd

# Force BSD style even using dash `-` in arguments
$ PS_FORMAT=DefBSD ps -p 1
    PID TTY      STAT   TIME COMMAND
      1 ?        Ss     0:01 /sbin/init

관련 정보