Пользователь, указанный в ps, не существует

Это странно:

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

Но пользователя gitlab - + не существует:

» 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

Почему это могло быть?

Как узнать ps ], чтобы показать мне идентификатор пользователя вместо имени пользователя для всех записей?

0
задан 22 February 2018 в 08:25
2 ответа

Используйте параметр n , описанный на странице руководства:

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

например

ps -ef n

Примечание. перед n

2
ответ дан 4 December 2019 в 12:18

Знак + в конце поля UID означает, что "имя пользователя длиннее, чем 8 персонажей и здесь не поместились ».

По историческим причинам ширина полей вывода ps -ef оставалась такой, как есть, даже когда имена пользователей длиннее 8 символов стали обычным явлением: в основном потому, что существует множество сценариев, которые анализируют его вывод и загадочным образом не работают, если ширина поля изменится.

1
ответ дан 4 December 2019 в 12:18

Теги

Похожие вопросы