ps 显示的用户不存在

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让其显示用户 ID 而不是用户名?

答案1

使用n参数,手册页中描述:

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

例如

ps -ef n

注意:前面应该有空格,而不是破折号n

答案2

UID 字段末尾的 + 号仅表示“用户名超过 8 个字符,不适合此处”。

由于历史原因,即使用户名长度超过 8 个字符已经变得很常见,输出的字段宽度ps -ef仍然保持原样:主要是因为有很多脚本可以解析其输出,如果字段宽度发生变化,就会以神秘的方式失败。

相关内容