プロセスのPID番号を知っている場合、そのプロセスの名前を知るにはどうすればいいですか?
プロセスのPID番号を知っている場合(UNIXマシン上)、そのプロセスに関連付けられたプロセスの名前を知るにはどうすればいいですか?
何をすればいいですか?
プロセスのPID番号を知っている場合(UNIXマシン上)、そのプロセスに関連付けられたプロセスの名前を知るにはどうすればいいですか?
何をすればいいですか?
すべてのPOSIX準拠システムとLinuxでは、ps
:
ps -p 1337 -o comm=
ここでは、-p
でプロセスをそのPIDで選択します。-o
オプションは出力形式を指定し、comm
はコマンド名を意味します。参照: ps
- オープングループ基本仕様書 第6号
/proc/pid/cmdline
cat /proc/pid/cmdline
を実行することで、
# ps aux
................
................
user 2480 0.0 1.2 119100 12728 pts/0 Sl 22:42 0:01 gnome-terminal
................
................
``` ```
# cat /proc/2480/cmdline
gnome-terminal
からプロセス名またはプロセス ID または pid で使用されるコマンドを見つけることができます。ここで pid は、名前を見つけたい の pid です。
特定の pid を使用してプログラムのパスを取得するには、次のように使用することができます:
ps ax|egrep "^ [PID]"
代わりに次のように使用することができます:
ps -a [PID]
pmapを使用することができます。PID 6649を検索しています。そして、余分なプロセスの詳細を切り取っています。
001
例:
# ls -la /proc/ID_GOES_HERE/exe
slhckの回答 ](https://superuser.com/a/632987/309066)と似ていますが、コマンド呼び出しではなくファイル操作に依存しています:
MYPID=1
cat "/proc/$MYPID/comm"
また 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
を使用することができます “` 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 ”` を印刷する HEAD LINE を &001 を使用するために &001
意外なことに、誰も ps の -f (full command) オプションについて言及していません。私はこれを -e (everything) と一緒に使い、結果を grep にパイプして検索結果を絞り込むのが好きです。
ps -ef | grep <PID>
これは、システム上で多くのリソースを消費している誰かが実行しているフルコマンドを見るのにも非常に便利です。これはコマンドに渡されたオプションと引数を表示してくれます。
最も簡単な方法は、次のコマンドを使うことです:
ps -awxs | grep pid
PIDを見つけてbashスクリプト内で使用するためのシンプルなスクリプトを作りました… 注意して使用してください!
スクリーンショット:
アンドレ