Это странно:
» 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
показывать мне идентификатор пользователя вместо имени пользователя для всех записей?
Использовать n
параметр, описанный на странице руководства:
n Numeric output for WCHAN and USER (including all types of UID and GID)
например
ps -ef n
N.B. перед ним должен быть пробел, а не тире n
Знак + в конце поля UID означает, что «имя пользователя длиннее 8 символов и здесь не помещается».
По историческим причинам ширина поля ps -ef
вывод был сохранен как есть, даже когда имена пользователей длиннее 8 символов стали обычным явлением: в основном потому, что существует множество сценариев, которые анализируют его вывод и загадочным образом не сработают, если ширина поля изменится.