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