ps 명령: 'O' 옵션 사용 시 이상한 동작, 추가 열/헤더가 예상대로 표시되지 않음

ps 명령: 'O' 옵션 사용 시 이상한 동작, 추가 열/헤더가 예상대로 표시되지 않음

명령 정보 - 옵션을 통해 ps명령에서 사용하는 옵션에 따라 기본 헤더가 있는 하나 이상의 추가 열/제목을 추가합니다 .psO

소개하다

실행 되면 ps x출력은 다음과 같습니다.

  PID TTY      STAT   TIME COMMAND
 1677 ?        Ss     0:00 /lib/systemd/systemd --user
 1679 ?        S      0:00 (sd-pam)
 1704 tty1     S+     0:00 -bash
 1961 tty4     S      0:00 -bash
 1973 tty4     S+     0:00 man ps
 1983 tty4     S+     0:00 pager
 2227 ?        S      0:00 sshd: manueljordan@pts/0
 2228 pts/0    Ss     0:00 -bash
 2307 ?        S      0:01 sshd: manueljordan@pts/1
 2308 pts/1    Ss     0:00 -bash
 2407 ?        S      0:00 sshd: manueljordan@pts/2
 2408 pts/2    Ss     0:00 -bash
 2437 pts/2    S+     0:00 less
 2846 pts/1    S+     0:00 man ps
 2856 pts/1    S+     0:00 pager
 2968 pts/0    R+     0:00 ps x 

우리는 기본 열/제목 세트를 알고 있습니다.

간단한 확인을 수행하는 방법 - if ps xO %cpu출력은 다음과 같습니다.

  PID %CPU S TTY          TIME COMMAND
 1677  0.0 S ?        00:00:00 systemd
 1679  0.0 S ?        00:00:00 (sd-pam)
 1704  0.0 S tty1     00:00:00 bash
 1961  0.0 S tty4     00:00:00 bash
 1973  0.0 S tty4     00:00:00 man
 1983  0.0 S tty4     00:00:00 pager
 2227  0.0 S ?        00:00:00 sshd
 2228  0.0 S pts/0    00:00:00 bash
 2307  0.0 S ?        00:00:01 sshd
 2308  0.0 S pts/1    00:00:00 bash
 2407  0.0 S ?        00:00:00 sshd
 2408  0.0 S pts/2    00:00:00 bash
 2437  0.0 S pts/2    00:00:00 less
 2846  0.0 S pts/1    00:00:00 man
 2856  0.0 S pts/1    00:00:00 pager
 2969  0.0 R pts/0    00:00:00 ps

지금까지는 모든 것이 괜찮습니다. 이 글을 올릴 이유가 없습니다

HEADER따라서 이론적으로는 각각의 항목을 기반으로 무엇이든 추가할 수 있습니다 . 이는 에서 얻을 수 있는 부분 CODE에 따라 다릅니다 .STANDARD FORMAT SPECIFIERSman ps

이제 이 질문에 대한 경험에 감사드립니다.

열/제목을 표시합니다 PSR.

상태

실행 되면 ps xO psr출력은 다음과 같습니다.

  PID TTY      STAT   TIME COMMAND
 1677 ?        Ss     0:00 /lib/systemd/systemd --user
 1679 ?        S      0:00 (sd-pam)
 1704 tty1     S+     0:00 -bash
 1961 tty4     S      0:00 -bash
 1973 tty4     S+     0:00 man ps
 1983 tty4     S+     0:00 pager
 2227 ?        S      0:00 sshd: manueljordan@pts/0
 2228 pts/0    Ss     0:00 -bash
 2307 ?        S      0:01 sshd: manueljordan@pts/1
 2308 pts/1    Ss     0:00 -bash
 2407 ?        S      0:00 sshd: manueljordan@pts/2
 2408 pts/2    Ss     0:00 -bash
 2437 pts/2    S+     0:00 less
 2846 pts/1    S+     0:00 man ps
 2856 pts/1    S+     0:00 pager
 2975 pts/0    R+     0:00 ps xO psr

PSR만약 당신이 이 일을 하고 있다는 것을 깨닫는다면아니요나타나세요, 왜요?

그러나 ps xO %cpu,psr실행되면 출력은 다음과 같습니다.

  PID %CPU PSR S TTY          TIME COMMAND
 1677  0.0   1 S ?        00:00:00 systemd
 1679  0.0   2 S ?        00:00:00 (sd-pam)
 1704  0.0   1 S tty1     00:00:00 bash
 1961  0.0   0 S tty4     00:00:00 bash
 1973  0.0   1 S tty4     00:00:00 man
 1983  0.0   2 S tty4     00:00:00 pager
 2227  0.0   3 S ?        00:00:00 sshd
 2228  0.0   3 S pts/0    00:00:00 bash
 2307  0.0   3 S ?        00:00:01 sshd
 2308  0.0   3 S pts/1    00:00:00 bash
 2407  0.0   0 S ?        00:00:00 sshd
 2408  0.0   0 S pts/2    00:00:00 bash
 2437  0.0   0 S pts/2    00:00:00 less
 2846  0.0   0 S pts/1    00:00:00 man
 2856  0.0   0 S pts/1    00:00:00 pager
 2981  0.0   0 R pts/0    00:00:00 ps

또는 ps xO uname,psr실행되면 출력은 다음과 같습니다.

  PID USER     PSR S TTY          TIME COMMAND
 1677 manuelj+   1 S ?        00:00:00 systemd
 1679 manuelj+   2 S ?        00:00:00 (sd-pam)
 1704 manuelj+   1 S tty1     00:00:00 bash
 1961 manuelj+   0 S tty4     00:00:00 bash
 1973 manuelj+   1 S tty4     00:00:00 man
 1983 manuelj+   2 S tty4     00:00:00 pager
 2227 manuelj+   3 S ?        00:00:00 sshd
 2228 manuelj+   3 S pts/0    00:00:00 bash
 2307 manuelj+   3 S ?        00:00:01 sshd
 2308 manuelj+   3 S pts/1    00:00:00 bash
 2407 manuelj+   0 S ?        00:00:00 sshd
 2408 manuelj+   0 S pts/2    00:00:00 bash
 2437 manuelj+   0 S pts/2    00:00:00 less
 2846 manuelj+   0 S pts/1    00:00:00 man
 2856 manuelj+   0 S pts/1    00:00:00 pager
 2982 manuelj+   0 R pts/0    00:00:00 ps

헤더와 함께 하나 이상의 다른 추가 헤더가 추가된 PSR다음 PSR출력에만 나타나는 것을 선언하면 어떻게 알 수 있습니까?

PSR옵션을 통해 고유한 추가 헤더를 추가하는 방법을 선언할 때 헤더가 표시되지 않는 이유는 무엇 입니까 O? 어떤 이유로 이것이 예상되는 동작입니까?

답변1

O가져오는 필드에 따라 동작이 달라지고 종종 매우 혼란스러울 수 있으므로 이러한 옵션을 사용하지 않는 것이 좋습니다 .

그러면 이를 보고 그것이 (마지막으로 사용된 프로세서) 열을 ps xO psr정렬하고 표시해야 한다는 뜻이라고 생각할 수도 있습니까 ?PSR

이것은 실제로 수행되지 않습니다.

@steeldriver가 위에서 못 박았는데, 이전 키로 정렬하고 있습니다. 따라서 pspid "p", 크기 "s" 및 RSS "r" 정렬을 요청합니다 . 정렬 순서는 다르지만 rspor 기준으로 정렬하는 것은 동일하게 잘 작동합니다.spr

왜 상황이 바뀔까요? ps xO psr,%cpu아니면 ps xO psr,psr그것을 위해 상황을 바꾸나요? ps는 이제 이전 정렬 키가 필요하지 않고 정렬을 위해 열 이름을 사용하고 있다는 것을 깨달았습니다.

관련 정보