Parece ser uma mensagem de erro enganosa.
Se você observar a procps
source, arquivo common.h
linha 290 :
extern unsigned format_modifiers; /* -c -j -y -P -L... */
-j
implícito format_modifiers
sinalizador a ser definido, que causa o erro se usado com saída definida pelo usuário :
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;
}
Uma mensagem como Não é possível usar modificadores de formato de saída com saída definida pelo usuário seria melhor.
FreeBSD ps
não tem esse problema, -j
opção causa ps
para imprimir informações sobre user, pid, ppid, pgid, sid, jobc, state, tt, time, and command
. Adicionar -o
torna a saída agregada:
$ 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
Modificadores de saída controlam como as informações exibidas, enquanto o formato de saída controla as informações what exibidas.
Exemplo o s
opções é um controle de formato de saída, porque ele adicionou informações de sinal de processo para ps
output:
$ 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
é um modificador de saída, porque alterou a forma como a saída foi exibida:
$ ps f
PID TTY STAT TIME COMMAND
12831 pts/1 Ss 0:00 zsh
13238 pts/1 R+ 0:00 \_ ps f
Aqui, a saída foi exibida como hierarquia.