私はLinuxで働いています。
実行中のプログラムのPIDが与えられたら、カスタムプログラム名を取得する方法はありますか?
プロセス名ではなくプログラム名を出力したい。
たとえば、次のようにjava
なります。スタックオーバーフロー。プロセス名はシステムによって決まり、異なる場合がありますが、プログラム名はスタックオーバーフロー。したがって、出力はプログラム名でなければならず、実行中のプログラムのPIDのみを提供する必要があります。
次のいくつかの要件を満たすいくつかのコマンドがあります。
cat /proc/"PID"/cmdline
->これは、指定された「PID」を使用してプロセスを生成するためのコマンドライン引数を提供します。ただし、さまざまなプログラミング言語のさまざまなプログラムがある場合は、プログラムを実行するコマンド形式が異なります。それでは、このコマンドから正しいプログラム名をどのように抽出できますか?
readlink -f /proc/"PID"/exe
-> 「PID」が指定されたプロセスに関連付けられた実行可能ファイル名が提供されます。ただし、一部のプロセスには実行可能ファイルがありません。この場合、何も返しません。
私は実際に大規模で作業しています。サーバー上で実行されているすべてのプロセスのアプリケーション名(またはソースファイル名またはプログラム名)を見つけたいです。したがって、Java、cpp、Pythonなどのプログラミング言語について特にハードコーディングしたくありません。これに関して一般的なものを提案してください。
ベストアンサー1
利用できる<pid>
、
/bin/cat /proc/<pid>/comm
これにより、実行可能ファイルの名前が提供されます。
/bin/ls -lt /proc/<pid>/exe
実行可能ファイルのパスは上に示されています。