プロセスのPID番号(UNIXマシン上)がある場合、関連するプロセスの名前を調べるにはどうすればよいですか?
私は何をしなければなりませんか?
ps -fp PID
完全なコマンドを表示します
プロセスのPID番号(UNIXマシン上)がある場合、関連するプロセスの名前を調べるにはどうすればよいですか?
私は何をしなければなりませんか?
ps -fp PID
完全なコマンドを表示します
回答:
すべてのPOSIX準拠システムで、Linuxを使用すると、次を使用できますps
。
ps -p 1337 -o comm=
ここでは、プロセスはPIDによって選択され-p
ます。この-o
オプションcomm
は、コマンド名を意味する出力形式を指定します。
command
代わりに使用すると修正されます。
$ ps -p 1 -o comm=
init $ ps -p 1 -o command=
/ sbin / init; つまり、約15文字ではなく、単にバイナリの名前とフルパスのどちらかです。
comm
は、バイナリの名前を与え、command
引数0
プロセスIDまたはpidで使用されるプロセス名またはコマンドは、次の場所から見つけることができます。
/proc/pid/cmdline
することによって
cat /proc/pid/cmdline
ここで、pidは、
たとえばFor Formaple の名前を検索する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
pmapを使用できます。私はPID 6649を探しています。そして、余分なプロセスの詳細を切り取ります。
$ pmap 6649 | head -1
6649: /usr/lib64/firefox/firefox
ps
コマンドjava
を使用すると表示されるのはだけですが、渡された残りのパラメーターはで完全に表示されますpmap
。
また、psと組み合わせてawkを使用することもできます
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
ps ax | grep 1
、それは本当に返すかどうかを確認するinit
例えば、プロセスを。(私の場合、それは119行を返します
ps aux | awk 'NR==1 || $2==PID'
-を使用{print $0}
します。デフォルトであるため、言う必要はありません。しかし、あなたがコメントしたように、-p
とにかく良いです。
cat /proc/1/comm
=> init、/ sbin / initではありません。彼の答えには、より長いバージョンが含まれています。とにかく+1。
驚いたことに、psの-f(フルコマンド)オプションについて言及している人はいません。-e(すべて)で使用し、結果をgrepにパイプして、検索を絞り込むことができます。
ps -ef | grep <PID>
これは、システム上の多くのリソースを使用している誰かが実行している完全なコマンドを確認する場合にも非常に便利です。これにより、コマンドに渡されたオプションと引数が表示されます。
-e -f
使用可能な場合でも、grep
たとえばgrep 33
pid = 933または339、ppid = 33または933または339、33秒または33分のtimeused、または33を含むプログラム名または引数(grep
それ自体を含む)を含む、多くの誤った一致を生成できます。すべて(私の知る限り)ps
持っている-p
だけで、そうps -fp 33
。
次のコマンドを使用するのが最も簡単な方法です。
ps -awxs | grep pid
ps -p${pid}
、これはgrep
それ自体を含む多くの誤検知を拾います。
PIDを見つけてbashスクリプト内で使用する簡単なスクリプトを作成しました...
注意して使用してください!!
スクリーンショット:http : //pastebin.com/Cm9YH67U
アンドレ
ps
またはls -l /proc/$PID/exe