linux – 実行中のプロセスの絶対パスを知るには?

linux process ps

ディスク上に同じアプリケーションの複数のコピーがあり、psで見たように1つだけが実行されている場合、他のアプリケーションと区別するための絶対パスをどのようにして知ることができますか?

  108  Jader Dias  2010-02-01


ベストアンサー

% sudo ls -l /proc/PID/exe

eg:

% ps -auxwe | grep 24466
root     24466  0.0  0.0   1476   280 ?        S     2009   0:00 supervise sshd
% sudo ls -l /proc/24466/exe
lrwxrwxrwx 1 root root 0 Feb  1 18:05 /proc/24466/exe -> /package/admin/daemontools-0.76/command/supervise

130  akira  2010-02-01


Use:

pwdx $pid

これは、pid の絶対パスではなく、pid の現在の作業ディレクトリを提供します

通常、whichコマンドはシェルから起動されているものを教えてくれます

#> which vlc
/usr/bin/vlc

26  seenu  2013-05-03


一つの方法は ps -ef です

17  fpmurphy  2010-02-01


ps auxwwwe

Source:

Attention Required! | Cloudflare

4  Jader Dias  2010-02-01


手っ取り早い答えは、オプションでpsを使うか、ファイルシステム情報で/procを使うことです。これは通常は動作しますが、保証されているわけではありません。一般的に、明確で保証された答えはありません。例えば、実行中にファイルが削除されて、ファイルへのパスがない場合はどうでしょうか?

Unix FAQ、特に質問 4.3 と 4.4 を参照してください

3  mpez0  2010-02-01


lsofはオプションです。以下のようなものを試してみてください

lsof -p PROCESS_ID

これは、実行ファイルの実際の場所を含むプロセスによって開かれたすべてのファイルをリストアップします。その後、awk, cut, grepなどを追加して、探している情報を見つけることができます

例として、私は以下のコマンドを実行して、「java」プロセスがどこから来たのかを特定しました

lsof -p 12345 | awk '{print $NF}' | grep 'java$'

3  ram  2017-10-09


なぜ誰もがPIDを知っていることを期待するのか?ここに人間に優しい方法があります

pwdx `pgrep ###process_name###`

2  moodboom  2016-04-27


を使用することができます

readlink /proc/$(pgrep -x -U $(id -ur) APP_NAME)/exe

or

find /proc/$(pgrep -x -U $(id -ur) APP_NAME)/exe -printf "%l\n"

現在のユーザとして動作しているAPP_NAMEの絶対パスを取得します

0  jarno  2016-03-05


タイトルとURLをコピーしました