존재하다맨페이지ps
-j
위치 형식.
-f
완전한 형식의 목록을 만드세요.
-o format
사용자 정의 형식.
$ ps -j -o ppid,sid
error: can not use output modifiers with user-defined output
$ ps -f -o ppid,sid
PPID SID
3046 23122
3046 1002
1002 1002
3046 13961
...
무엇인가요출력 수정자의미는? 맨페이지에서 ps
, -j
및 -f
는 대신 , -o
아래에 나열되어 있습니다 .OUTPUT FORMAT CONTROL
OUTPUT MODIFIERS
일반적으로 출력 형식 제어 옵션과 비교하여 출력 수정자를 어떻게 사용합니까?
출력 수정자는 옵션입니까 아니면 매개변수입니까?
답변1
이는 오해의 소지가 있는 오류 메시지인 것 같습니다.
procps
소스코드를 보면 해당 파일이common.h
290번 국도:
extern unsigned format_modifiers; /* -c -j -y -P -L... */
-j
format_modifiers
설정할 암시적 플래그,사용자 정의 출력과 함께 사용하면 오류가 발생합니다.:
if(format_list){
if(format_flags) return "Conflicting format options.";
if(format_modifiers) return "Can't use output modifiers with user-defined output";
if(thread_flags&TF_must_use) return "-L/-T with H/m/-m and -o/-O/o/O is nonsense";
return NULL;
}
이런 소식출력을 사용할 수 없습니다형식 수정자사용자 정의 출력 있음더 좋아질 것입니다.
FreeBSD에는 ps
이 문제가 없습니다. Cause 인쇄 -j
옵션을 사용하면 출력이 집계됩니다.ps
user, pid, ppid, pgid, sid, jobc, state, tt, time, and command
-o
$ ps -j -o ppid,sid
USER PID PPID PGID SID JOBC STAT TT TIME COMMAND PPID SID
cuonglm 1196 1195 1196 1196 0 Ss 0 0:00.02 -sh (sh) 1195 1196
cuonglm 1233 1196 1233 1196 1 R+ 0 0:00.00 ps -j -o ppid,si 1196 1196
출력 수정자 제어어떻게정보 표시 및 출력 형식 제어 제어무엇정보가 표시됩니다.
예를 들어 옵션은 출력 s
에 프로세스 신호 정보를 추가하기 때문에 출력 형식 제어입니다 .ps
$ ps s
UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND
1000 12831 0000000000000000 0000000000000002 0000000000384004 0000000188013003 Ss pts/1 0:00 zsh
1000 13067 0000000000000000 0000000000000000 0000000000000000 0000000073d3fef9 R+ pts/1 0:00 ps s
f
출력 표시 방법을 변경하기 때문에 출력 수정자입니다.
$ ps f
PID TTY STAT TIME COMMAND
12831 pts/1 Ss 0:00 zsh
13238 pts/1 R+ 0:00 \_ ps f
이 출력은 계층 구조로 표시됩니다.