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