Centos 6.6でコマンドを実行すると、ps
最初の列はユーザー名ではなくユーザーIDです。
root@cluster:mahmood# ps aux | grep Xvnc
506 11881 0.6 0.1 168580 63164 ? S Jun03 24:56 /usr/bin/Xvnc :6 -desktop cluster.hpc.org:6 (haghsheno) -auth /home/mahmood/.Xauthority -geometry 1000x900 -rfbwait 30000 -rfbauth /home/mahmood/.vnc/passwd -rfbport 5906 -fp catalogue:/etc/X11/fontpath.d -pn
なぜこれが起こるのですか?自分のユーザー名にどのように変更できますか?
答え1
残念ながら、psはデフォルトでユーザー名が8文字より長い場合は表示しません。システムがLDAPでsssdを実行している場合getentパスワードユーザーID"ユーザーがLDAPデータベースまたはパスワードファイルに存在することを確認します。私のユーザー名"tvb"がほとんど常に表示されます。しかし、ユーザー名"城「ほとんどの場合そうではありません。次のような他のコマンド」勝つ「最初の8文字が表示されます」プロングラス「そして残りは切る。上の@KevinOの例では」ハルダモン「は9文字なので、psにはユーザー名で表示されず、ユーザーIDで表示されます。
% getent passwd haldaemon
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
また、答えは次のとおりです。blog.dbi-services.comBSD形式ps出力でも、ユーザー名フィールドのフィールド長を指定するのに役立ちます。アドバイスを少し簡単にするには、次のようにします。
env PS_FORMAT='user:12,pid,%cpu,%mem,vsz,rss,tty,stat,start,time,command' ps ax | grep haldaemon
haldaemon 2032 0.0 0.0 53100 2020 ? Ssl Aug 12 00:01:10 hald
必要な出力を提供します。
答え2
passwd()にidがない場合、grep 506 /etc/passwd
ユーザー名は表示されません。
その場合は、その項目を内部に追加してください/etc/passwd
。
この答えは完全ではありません!/etc/passwdでこの行を見つけるのが最善です。 3番目のフィールド($3
コロンで区切られています-F:
)にが含まれています506
。Jeffの最初のコメントを見る。上記の簡単な例では、ユーザー名yx506、ID 123506などを含む行を表示します。
しかし、とにかく:useridが内部にない場合は、/etc/passwd
この答えが表示されます。できる解決策になります。
今後は、より具体的に申し上げます。