人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

LinuxでプロセスIDから絶対パスを取得する方法を教えてください。

「ps x」などで調べると、実行時のコマンド名までは表示されるのですが「./Hoge」のように表示され、例えば違うディレクトリで同じモジュールを実行した際に区別がつきません。

PIDからそのプロセスの絶対パスを調べる方法はあるのでしょうか?

●質問者: kenicca
●カテゴリ:コンピュータ
✍キーワード:hoge Linux PS コマンド ディレクトリ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● znz
●35ポイント

スクリプトではない普通の実行ファイルなら、

ls -l /proc/$PID/exe

のように/proc/プロセスID/exeにシンボリックリンクとして実行ファイルのパスが見えます。

スクリプトの場合は /proc/プロセスID/cmdline に "\0"(NUL文字) 区切りで実行したコマンドラインが入っているので、そのコマンドラインと /proc/プロセスID/cwd にシンボリックリンクとして見えるそのプロセスのカレントワーキングディレクトリ(と必要なら/proc/プロセスID/rootにシンボリックリンクとして見えるそのプロセスからみたルートディレクトリ(chrootで変わる))から推測するしかなさそうです。

スクリプトで、すでにchdirしている後だと無理そうです。

http://www.linux.or.jp/JM/html/LDP_man-pages/man5/proc.5.html


2 ● b-wind
●35ポイント

基本的には1の回答と同じです。

/proc 以下に実行中のプロセス情報がファイルとして見えますので、そこから探し出す形になります。

http://www.atmarkit.co.jp/flinux/special/proctune/proctune01b.ht...

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ