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そのまま維持されています。主な理由は、出力を解析するスクリプトが多数あり、フィールド幅が変更されると不可解な方法で失敗するためです。

関連情報