Linux에서 ps
출력 :
UID PID PPID C STIME TTY TIME CMD
ps -lu
FreeBSD에서는 또는 명령을 사용하여 유사하지만 다른 출력을 얻을 수 있습니다 ps -ju
. 후자의 문제점은 명령의 출력 중간에 공백이 포함될 수 있기 때문에 구문 분석이 어렵다는 것입니다.
UID PID PPID C PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND USER %CPU %MEM STARTED
또는
USER PID PPID PGID SID JOBC STAT TT TIME COMMAND %CPU %MEM VSZ RSS STARTED
man ps
매우 명확하지는 않지만 출력이 변경될 수 있음을 의미할 수 있는 일부 정보가 포함되어 있습니다. 이것이 가능한지 설명할 수 있는 사람이 있나요?
답변1
command 에서 가능한 공백으로 인해 출력을 구문 분석하는 데 문제가 있다고 언급했으므로 ps
FreeBSD의 또는 출력 열 COMMAND
오른쪽에 있는 열에 뭔가를 원한다고 가정합니다.ps -lu
ps -ju
COMMAND
Linux 출력에서도 열 오른쪽에 있는 유일한 데이터 (말한 것처럼 간단하지는 않음)는 명령의 시작 시간입니다. 이것이 원하는 것이 아니라면 질문을 업데이트하십시오.ps -f
ps
따라서 사용할 수 있는 명령의 시작 시간을 원한다고 가정합니다.
ps -opid,start,command
... FreeBSD에서는 PID
, 및 필드만 가져옵니다 STARTED
.COMMAND
예:
$ ps -opid,start,command -p $(pgrep -x mosh-server)
PID STARTED COMMAND
1964 13:06 mosh-server new -c 8 -s -l LC_CTYPE=UTF-8
2059 13:08 mosh-server new -c 8 -s -l LC_CTYPE=UTF-8
필요에 따라 필드 순서를 변경하거나 필드를 추가 및 제거할 수 있습니다.
바라보다수동 KEYWORDS
부분ps(1)
FreeBSD 시스템에서 사용 가능한 필드 목록을 가져옵니다.
답변2
-o
ps
출력되는 필드를 정확하게 제어할 수 있는 단일 Unix 사양 표준 옵션입니다 .
$ /bin/ps -ouid,pid,ppid,lstart,tty,time,args $$
UID PID PPID STARTED TTY TIME COMMAND
1001 40585 40133 Sat 27 May 21:59:32 2023 pts/3 0:00.03 yash -o posix
$
FreeBSD 출력에서 계정 명령 이름, 인수, 환경, 시작 시간 및 기타 여러 필드에는 공백이 포함될 수 있습니다 ps
. 실제로 ps
이는 Linux 기반 운영 체제의 propcps에도 해당됩니다. 일반적으로 표준 출력은 ps
기계에서 구문 분석할 수 없습니다. 사람이 읽을 수 있는 형식입니다.
ps
나는 실제로 기계 분석 가능성을 원했기 때문에 그 출력 을 작성했습니다 .예기계 분석이 가능합니다. 필드에는 그래픽 문자만 포함되며 탭 문자로 구분됩니다. 이것은 awk -F'\t'
다른 것에 보내는 데 이상적입니다. 아이러니하게도 이렇게 awk
하면 , 및 보다 더 복잡한 필터를 수행할 수 있기 때문에 프로세스 테이블에서 내가 보고 싶은 부분을 선택하기가 더 쉬워집니다 .-A
-a
-x
$ ps -ouid,pid,ppid,stime,tty,time,args -p $$
UID PID PPID STIME TT TIME COMMAND
1001 40585 40133 2023-05-27\04021:59:32\040+0100 pts/3 \0400.031421s yash\040-o\040posix
$
물론, unvis
이는 FreeBSD 인코딩 중 하나일 뿐이므로 사람이 읽을 수 있는 형식으로 얻기 위해 항상 파이프를 사용할 수 있습니다 vis
.
$ ps -ouid,pid,ppid,stime,tty,time,args -p $$ | unvis
UID PID PPID STIME TT TIME COMMAND
1001 40585 40133 2023-05-27 21:59:32 +0100 pts/3 0.032331s yash -o posix
$
내가 일반적으로 하는 일은 스크립트의 루프에서 실행하는 것이지만 awk
일반적으로 흥미로운 프로세스를 선택하여 파이프한 다음 console-flat-table-viewer
.
추가 읽기
ps
. 주문하다.스낵 가이드. 조나단 드 보인 폴라드.console-flat-table-viewer
. 주문하다.스낵 가이드. 조나단 드 보인 폴라드.