O usuário mostrado no ps não existe

O usuário mostrado no ps não existe

Isto é estranho:

» ps -ef | grep gitlab
gitlab-+ 19663  4237  0 06:45 ?        00:00:00 postgres: gitlab gitlabhq_production [local] idle

Mas o gitlab-+usuário não existe:

» cat /etc/passwd | grep gitlab
gitlab-www:x:998:997::/var/opt/gitlab/nginx:/bin/false
git:x:997:996::/var/opt/gitlab:/bin/sh
gitlab-redis:x:996:995::/var/opt/gitlab/redis:/bin/false
gitlab-psql:x:995:994::/var/opt/gitlab/postgresql:/bin/sh
gitlab-prometheus:x:994:993::/var/opt/gitlab/prometheus:/bin/sh

Por que isso poderia ser?

Como posso saber pspara me mostrar o ID do usuário em vez do nome de usuário, para todas as entradas?

Responder1

Use no parâmetro descrito na página de manual:

n      Numeric output for WCHAN and USER (including all types of UID and GID)

por exemplo

ps -ef n

NB, deve haver espaço, não traço antesn

Responder2

O sinal + no final do campo UID significa apenas "o nome de usuário tem mais de 8 caracteres e não cabe aqui".

Por razões históricas, as larguras dos campos de ps -efsaída foram mantidas como estão, mesmo quando nomes de usuários com mais de 8 caracteres se tornaram comuns: principalmente porque há muitos scripts que analisam sua saída e falhariam de maneiras misteriosas se as larguras dos campos mudar.

informação relacionada