プラットフォーム間で命名基準を設定する際に注意すべきことの1つは、Linux(および場合によっては他のUnix OS)のpsの特定の表面的な問題です。あなたはこれを気にするかもしれないし、気にしないかもしれません(しかし、それを期待していない人には警戒するかもしれません...私はセキュリティの人々にこれをひきつらせました)。
UID列には、最大8文字のユーザー名のみが表示されます。ユーザー名が8文字より長い場合、実際の数値UIDの印刷に切り替わります。これを回避するには、USERフィールドを含むカスタムps列形式を使用しますが、USERが最後の列である場合にのみ(私の経験的なテストから)。
ほとんどの人はおそらくこれを気にしませんが、ps出力の何らかの処理を行い、実際のユーザー名が表示されることを期待している場合は、名前の長さに注意する必要があります(そうでない場合は、コードにハックを入れますpsに正しいことをさせるには)。
例えば:
完全な形式のリストのデフォルトの列形式は次のとおりです。ユーザー名が8文字を超えているため、UIDは数値形式であることに注意してください。
[tcampbell@tst-agg1 ~]$ ps -f
UID PID PPID C STIME TTY TIME CMD
2108 1368 1367 0 Jan10 pts/3 00:00:00 -bash
2108 22303 1368 0 12:07 pts/3 00:00:00 ps -f
カスタム列フォーマットを使用して再作成しましょう。USER列を追加したことに注意してください。数値形式でもあることに注意してください。
[tcampbell@tst-agg1 ~]$ ps -o uid,user,c,stime,tty,time,cmd
UID USER C STIME TT TIME CMD
2108 2108 0 Jan10 pts/3 00:00:00 -bash
2108 2108 0 12:05 pts/3 00:00:00 ps -o uid,user,c,stime,tty,time,cmd
USERを行末に移動しましょう。「正しい」出力に展開されます。
[tcampbell@tst-agg1 ~]$ ps -o uid,user,c,stime,tty,time,cmd,user
UID USER C STIME TT TIME CMD USER
2108 2108 0 Jan10 pts/3 00:00:00 -bash tcampbell
2108 2108 0 12:05 pts/3 00:00:00 ps -o uid,user,c,stime,tty, tcampbell
ただし、列リストの最後に何か新しいものを追加するとすぐに、数値形式に戻ります。
[tcampbell@tst-agg1 ~]$ ps -o uid,user,c,stime,tty,time,cmd,user,pid
UID USER C STIME TT TIME CMD USER PID
2108 2108 0 Jan10 pts/3 00:00:00 -bash 2108 1368
2108 2108 0 12:05 pts/3 00:00:00 ps -o uid,user,c,stime,tty, 2108 21756