web-dev-qa-db-ja.com

プロセスのPID番号がわかっている場合、その名前をどのようにして取得できますか?

(UNIXマシン上の)プロセスのPID番号を知っている場合、その関連プロセスの名前を知るにはどうすればよいですか。

私は何をしなければなりませんか?

242
AndreaNobili

すべてのPOSIX準拠のシステムで、そしてLinuxの場合、psを使うことができます。

ps -p 1337 -o comm=

ここでは、プロセスは-pを持つそのPIDによって選択されます。 -oオプションは出力フォーマットを指定します。commはコマンド名を意味します。

次も参照してください。 ps - オープングループ基本仕様第6号

262
slhck

Process-idまたはpidによって使用されるプロセス名またはコマンドは、次の場所にあります。

/proc/pid/cmdline

することによって

cat /proc/pid/cmdline

ここでpidは名前を見つけたいpidです
例:

 # ps aux

   ................
   ................
   user  2480  0.0  1.2 119100 12728 pts/0  Sl   22:42   0:01 gnome-terminal
   ................
   ................

Pid 2480で使用されているプロセス名を見つけるには、次のようにします。

# cat /proc/2480/cmdline 

 gnome-terminal
45
Stormvirux

特定のPIDを使用してプログラムのパスを取得するには、次のようにします。

ps ax|egrep "^ [PID]"

代わりにあなたが使用することができます:

ps -a [PID]

enter image description here

13
Pedro Lobito
# ls -la /proc/ID_GOES_HERE/exe

例:

# ls -la /proc/1374/exe
lrwxrwxrwx 1 chmm chmm 0 Mai  5 20:46 /proc/1374/exe -> /usr/bin/telegram-desktop

あなたはpmapを使うことができます。私はPID 6649を探しています。そして、余分なプロセスの詳細を切り捨てます。

$ pmap 6649 | head -1
6649:   /usr/lib64/firefox/firefox
8
Mike Studer

また、awkをpsと組み合わせて使用​​することもできます。

ps aux | awk '$2 == PID number for a process  { print $0 }'

例:

root@cprogrammer:~# ps aux | awk '$2 == 1 { print $0 }'
root         1  0.0  0.2  24476  2436 ?        Ss   15:38   0:01 /sbin/init    

HEAD LINEを印刷するには

 ps --headers aux |head -n 1 && ps aux | awk '$2 == 1 { print $0 }'

                 (or) 

 ps --headers aux |head -n 1; ps aux | awk '$2 == 1 { print $0 }'


root@cprogrammer:~# ps --headers aux |head -n 1 && ps aux | awk '$2 == 1 { print $0 }'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2  24476  2436 ?        Ss   15:38   0:01 /sbin/init
3
Gangadhar

slack Answer と似ていますが、コマンド呼び出しではなくファイル操作に依存します。

MYPID=1
cat "/proc/$MYPID/comm"
3
ThorSummoner

驚いたことに、psの-f(フルコマンド)オプションについて言及している人はいません。 -e(すべて)と組み合わせて使用​​し、結果をgrepにパイプ処理して検索範囲を狭めることができます。

ps -ef | grep <PID>

これは、システム上で多くのリソースを消費している、誰かが実行しているフルコマンドを調べるのにも非常に役立ちます。これにより、コマンドに渡されたオプションと引数が表示されます。

2
jdelaporte

pIDを見つけてbashスクリプト内で使用する簡単なスクリプトを作成しました。
注意して使用してください。

スクリーンショット
Screenshot

http://Pastebin.com/Cm9YH67U

アンドレ

0
André Verwijs

最も簡単な方法は、次のコマンドを使用することです。

ps -awxs | grep pid
0
user666282