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 個字符,不適合此處」。

由於歷史原因,輸出的字段寬度ps -ef一直保持原樣,即使長度超過8 個字元的用戶名已經變得很常見:主要是因為有很多腳本解析其輸出,如果字段寬度超出範圍,就會以神秘的方式失敗。

相關內容