Depende da sua implementação ps
.
Pelo menos com FreeBSD ps e < a procref ps, que usado no Linux :
1 UNIX options, which may be grouped and must be preceded by a dash.
2 BSD options, which may be grouped and must not be used with a dash.
3 GNU long options, which are preceded by two dashes.
Então, quando você fez:
ps 123
ps
assume que você deseja o estilo BSD, e adiciona ao estado do processo de saída STAT
column e exibe o comando args COMMAND
em vez do nome do executável CMD
. Com -p 123
, ps
assume que você quer o estilo SysV.
Mac OSX ps não documenta esse comportamento mas se comporta como FreeBSD ps
.
Com muitas implementações, você pode substituir o estilo padrão por PS_FORMAT
variável:
# SysV style when using dash '-' in arguments
$ ps -p 1
PID TTY TIME CMD
1 ? 00:00:01 systemd
# Force BSD style even using dash '-' in arguments
$ PS_FORMAT=DefBSD ps -p 1
PID TTY STAT TIME COMMAND
1 ? Ss 0:01 /sbin/init