LinuxでPIDのユーザー名を見つける方法


16

PIDのユーザー名を見つけるのを手伝ってもらえますか、時々サーバーが高負荷になりました。i-topを実行すると、サーバーの負荷を引き起こしているPIDのユーザー名が見つかりません。


バルクPHPプロセスによるサーバー負荷の問題が発生していたため、この質問があったため、「lsof -p xxxx」を使用してそれらを見つけることができます。
ランジトクマールT

回答:


30

私は誰もまだこれを上げていないことに驚いています:

コマンドの-pオプションを試してくださいps

たとえば、PIDがある場合は1234、次を実行します。

ps -u -p 1234

-u出力にユーザー名を含めるために追加されました)

あなたは、使用できるgrepawk、などは、あなたが欲しい情報を抽出します。


1
あなたは私よりも早くダニでした。あなたはもっと早く起きていますか?Linuxディストリビューションに応じて、ps u 1234(Debian)または単にps 1234(Android with Busybox)も機能します。
-ott--

5

/proc/processID/status ユーザー名を見つけるために使用できるユーザーIDに関する情報があります。

これは同じことをします:

uid=$(awk '/^Uid:/{print $2}' /proc/YOUR_PROCESS_ID/status)
getent passwd "$uid" | awk -F: '{print $1}'

YOUR_PROCESS_IDをプロセスID番号に置き換えます。


3

PIDからユーザー名のみを取得します。

PID=136323
USERNAME="$( ps -o uname= -p "${PID}" )"

を組み合わせることもできpgrepます。この例では、.phpファイルを実行するすべてのユーザー名を示しています。

pgrep -f '\.php' | xargs -r ps -o uname= -p | sort -u

特定の一意のプロセスを実行しているユーザー名を1つだけ検索します。

USERNAME="$( pgrep -nf 'script\.php' | xargs -r ps -o uname= -p )

1

あなたは正確に何が欲しいですか?私のシステムでは、「top -c」を実行すると次のようになります:

  PID USER      PR  NI  VIRT  RES  SHR S   %CPU %MEM    TIME+  COMMAND                                                                                                                        
  2873 matt      20   0 3022m 1.6g 1.6g S     22 21.6   2245:42 /usr/lib/virtualbox/VirtualBox --comment ESX5-1 --startvm 4fd78ee9-739a-4d53-a0ce-4f9819ab9411 --no-startvm-errormsgbox        
  29764matt      20   0 2779m 1.4g 1.3g S      5 18.4 210:33.51 /usr/lib/virtualbox/VirtualBox --comment win2008-2 --startvm 202ec2b7-ae12-40e9-af76-2be429e553d7 --no-startvm-errormsgbox     
  17281root      20   0     0    0    0 S      2  0.0   0:05.90 [kworker/u:2]                                                                                                              

したがって、PID(プロセス/タスク識別子)は最初の列であり、プロセスが実行されるユーザーアカウントは2番目の列です。


1

最短の方法は次のとおりだと思います。

id -nu </proc/<pid>/loginuid

/proc/<pid>/loginuidファイルには、プロセスを実行しているユーザのUID番号を持っています。id -nustdinからuidを読み取り、ユーザー名を返します。


いいね loginuidを文字列ユーザー名にマップできるユーザー名へのuidのファイルはありますか?
コリーロビンソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.