2017-09-30 37 views
-1

"httpd -d ./inst2 -k start"というコマンドを実行してApache Serverを起動すると、このコマンドラインは "ps -ef | grep httpd" 。私の質問は、絶対パスがわからない場合、 "./inst2"の絶対パスを取得する方法はありますか? ls -l /proc/PID/cwdコマンドラインで相対パスから絶対パスを取得する方法

おかげ

+0

スタックオーバーフローは、プログラミングおよび開発の質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザ](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 – jww

答えて

0

あなたは絶対パスがPIDps出力から判断することができる擬似シンボリックリンク/proc/PID/cwdを調べることである何GUESSに試すことができます。しかし、は現在の作業ディレクトリであり、あなたのパスは他のディレクトリに対して解決されるかもしれないことに注意してください。だから、それはちょうど推測ですです。

プログラムがこの相対パスを使用していくつかのファイルを開き、実際にこのようなファイルの完全パスを特定する必要がある場合は、/proc/PID/fd疑似ディレクトリ:ls -l /proc/PID/fdを使用して現在開いているファイルを列挙できます。しかし、もちろん、ファイルはすでにlsの実行時までに閉じることができます。開いているファイルが別の場所に移動した場合、そのファイルが何を表示するのか分かりません。

+0

ありがとう、私はそれを試してみましたが、単に "/"を表示しますが、これは相対パス "./inst2"に関連していません – sudo

+0

私はいくつかの研究を行い、/ proc/pid/environそのファイルの "PWD = xxx"セクションを見つけることができます – sudo

+0

@sudo AFAIK '/ proc/pid/environ'はプロセスの環境変数をリストします。私が恐れているのは、ここでの 'PWD'は、プロセスが開始された時の' bash'や他のシェルによって設定された変数です。しかし、少なくとも、それは推測する別の方法です。 –

-1

ファイル/ディレクトリの絶対パスを取得する場合でも、linuxで次のコマンドを実行することができます。

  1. 検索(ディレクトリ)-name(ファイル用) "inst2の"
  2. のfind $ HOMEの-type dが-name "inst2の" F $ホーム型

この任意のファイルやディレクトリの絶対パスを与えることができます。 ファイルが自宅にない場合は、コマンドの前にsudoを使用し、$ HOME/に置き換えてください。

+0

こんにちは、ありがとう、これは効率的で信頼できる解決策ではありません – sudo

+0

私はいくつかの研究を行い、/ proc/pid/environそのファイルの "PWD = xxx"セクションを見つけることができます – sudo

関連する問題