ps aux
aux
상태 및 리소스 사용량(Linux/BSD/MacOS) 과 함께 모든 프로세스를 나열하는 편리한 방법이 있는 것 같지만 man ps
.
무슨 뜻이에요 aux
?
답변1
a = 모든 사용자에 대한 프로세스 표시
u = 프로세스의 사용자/소유자 표시
x = 터미널에 연결되지 않은 프로세스도 표시
BTW, man ps
훌륭한 리소스입니다.
역사적으로 BSD와 AT&T는 호환되지 않는 옵션을 개발했습니다 ps
. 선행 대시가 없는 옵션(질문에 따르면)은 BSD 스타일이고 선행 대시가 있는 옵션은 AT&T Unix 스타일입니다. 그 외에도 Linux는 두 스타일을 모두 지원하는 버전을 개발한 다음 옵션이 이중 대시로 시작하는 세 번째 스타일을 추가했습니다.
모든(또는 거의 모든) 비임베디드 Linux 배포판은프로세스모음곡. 위의 옵션은 다음과 같이 정의됩니다.절차 ps
매뉴얼 페이지.
댓글에서 귀하는 Apple MacOS(내 생각에는 OSX)를 사용하고 있다고 말씀하셨습니다. OSX 매뉴얼 페이지 ps
는 다음과 같습니다.여기그리고 AT&T 스타일만 지원된다는 것을 보여줍니다.
답변2
man ps
옵션은 아래에 설명되어 있습니다.
a Lift the BSD-style "only yourself" restriction, which is imposed
upon the set of all processes when some BSD-style (without "-")
options are used or when the ps personality setting is BSD-like.
The set of processes selected in this manner is in addition to the
set of processes selected by other means. An alternate
description is that this option causes ps to list all processes
with a terminal (tty), or to list all processes when used together
with the x option.
u Display user-oriented format.
x Lift the BSD-style "must have a tty" restriction, which is imposed
upon the set of all processes when some BSD-style (without "-")
options are used or when the ps personality setting is BSD-like.
The set of processes selected in this manner is in addition to the
set of processes selected by other means. An alternate
description is that this option causes ps to list all processes
owned by you (same EUID as ps), or to list all processes when used
together with the a option.
예
$ ps aux | head -10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 51120 2796 ? Ss Dec22 0:09 /usr/lib/systemd/systemd --system --deserialize 22
root 2 0.0 0.0 0 0 ? S Dec22 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Dec22 0:04 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Dec22 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S Dec22 0:15 [migration/0]
root 8 0.0 0.0 0 0 ? S Dec22 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S Dec22 2:47 [rcu_sched]
...
saml 3015 0.0 0.0 117756 596 pts/2 Ss Dec22 0:00 bash
saml 3093 0.9 4.1 1539436 330796 ? Sl Dec22 70:16 /usr/lib64/thunderbird/thunderbird
saml 3873 0.0 0.1 1482432 8628 ? Sl Dec22 0:02 gvim -f
root 5675 0.0 0.0 124096 412 ? Ss Dec22 0:02 /usr/sbin/crond -n
root 5777 0.0 0.0 51132 1068 ? Ss Dec22 0:08 /usr/sbin/wpa_supplicant -u -f /var/log/wpa_supplica
saml 5987 0.7 1.5 1237740 119876 ? Sl Dec26 14:05 /opt/google/chrome/chrome --type=renderer --lang=en-
root 6115 0.0 0.0 0 0 ? S Dec27 0:06 [kworker/0:2]
...
위 스위치를 사용하면 위 프로세스와 관련된 출력을 얻을 수 있습니다.
스위치에 aux
다음이 표시됩니다.
- 모든 사용자를 위한 프로세스
- 사용자에게 표시되는 방식으로 나열된 프로세스를 표시합니다(사용자 이름 기준).
- 터미널에 연결된 프로세스뿐만 아니라 모든 프로세스를 보여줍니다. 여기에는 crond, upowerd 및 기타 서비스와 같은 프로세스가 포함됩니다.
답변3
이해의 핵심은맨페이지"aux"(처음 시도)를 검색하는 대신 매개변수 유형을 설명하는 부분에 집중하세요 ps
.
이 ps 버전은 다양한 옵션을 허용합니다:
- UNIX 옵션은 그룹화할 수 있으며 앞에 대시가 와야 합니다.
- BSD 옵션은 그룹화할 수 있으며 대시와 함께 사용할 수 없습니다.
- 두 개의 대시가 앞에 오는 GNU 긴 옵션입니다.
이를 통해 우리는 이것이 aux
(그룹화된) BSD 옵션 세트라는 것을 알 수 a
있으며 u
, x
이를 통해 쉽게 찾을 수 있습니다.
a
x
어떤 프로세스가 선택되고 함께 사용되는지 제어하는 것은 모든 프로세스를 선택하는 것으로 명시적으로 설명됩니다 .u
사용자 ID 및 CPU/메모리 사용량을 포함한 추가 열을 제공하는 "사용자 측" 형식을 사용하여 출력합니다.
출력 형식은 개별적으로 제어 되므로 u
특정 프로세스에만 해당하는 "ps aux" 스타일 출력을 얻을 수 있습니다 ps u $pid1 $pid2 ...
.
답변4
ps: 프로세스 상태
나에게는 두 가지를 모두 /bin/ps --version
얻습니다 /usr/bin/ps --version
.ps from procps-ng 3.3.16
ps는 다음에서 제공하는 명령입니다.프로세스:
명령줄 및 전체 화면유용탐색의 경우 procfs
프로세스 테이블의 항목 상태에 대한 정보를 제공하기 위해 커널에 의해 동적으로 생성된 "유사" 파일 시스템입니다.
문법 2개
시스템의 모든 프로세스를 보려면 다음을 사용하십시오.
- 표준 구문
- 폴리스티렌
- 폴리스티렌-EF
그런데, 예 ps -u
:
- ps -u root --format=user,pid,command # 다음 줄과 동일:
- ps -uroot --format=user,pid,command #(정말 보기 흉한 구문입니다!)
출력은 다음과 같습니다
USER PID COMMAND
root 1 /sbin/init splash
root 2 [kthreadd]
root 3 [rcu_gp]
root 4 [rcu_par_gp]
root 6 [kworker/0:0H-kblockd]
root 9 [kworker/u80:0-ixgbe]
이 POSIX 및 UNIX 표준에 따르면 다음을 ps -aux
의미합니다 ps -a -ux
.
1. tty가 있는 프로세스(세션 리더 제외) [by -a
]
2. 이름이 "x"인 사용자가 소유한 모든 프로세스 [by -ux
] ( -u
: 유효한 프로세스 선택너순서)
공정 선택 옵션이 추가됩니다. (다음 조건을 만족할 경우 해당 공정이 표시됩니다.)어느주어진 선택 기준)
"x"(현재 사용자?)라는 사용자가 존재하지 않는 경우
ps -aux
가능한Fallsps aux
하고 경고를 출력합니다.
-x
매뉴얼 페이지에는 옵션이 없지만 ps -x
동일한 프로세스로 찾을 수 있습니다 ps -ux
(다른 출력 형식).
ps -ux --format=user
가져오기:
사용자 이름이 존재하지 않습니다.ps -x --format=user
올바른 결과 얻기(현재 사용자에 해당)
다음과 같은 사실이 생각나는 것도 당연합니다 manpage
.
이 동작은 전환을 돕기 위한 것입니다.오래된 스크립트와 습관. 깨지기 쉬우므로 의존해서는 안 됩니다.
- BSD 구문:
PS 도끼
답변: 모든 사용자
x: 목록모두프로세스 소유자너(ps와 동일한 EUID). 또는 더 구체적으로 말하면 다음과 같은 프로세스가 포함되지 않습니다.제어 터미널(터미널에 연결되지 않은 프로세스 포함)
따라서
ax
모든 프로세스가 나열됩니다u: 자원 출력너세이지 형식
예:ps axu