Linux-プロセスの現在の作業ディレクトリを見つけますか?


11

プロセスPID Xがある場合、それが実行されていたディレクトリを確認するにはどうすればよいですか?私はps aux | grep Xそれが呼び出された完全なコマンドラインで見ることができます。ただし、この場合はであり./script.sh、どちらscript.shが実行されているのかを確認したいと思います。

回答:


11

問題/proc/PID/exeは、シェルスクリプトの場合、シェルの場所が表示されることです。問題/proc/PID/cwdショーです現在のプロセスの作業ディレクトリ。プロセスがディレクトリを変更すると、そのシンボリックリンクのターゲットに反映されます。

これにより、スクリプトの開始時に$ PWDが何であったかが表示されます(「PID」が表示される場所に関心のあるプロセスIDを代入します)。

procdir=$(grep -az "\bPWD" /proc/PID/environ); echo $procdir

または単に:

grep -az "\bPWD" /proc/PID/environ

これにより、それを開始したコマンドが表示されるため、相対ディレクトリまたは絶対ディレクトリのどちらが使用されたかを確認できます。

proccmd=$(grep -az PROC_NAME /proc/PID/cmdline); echo $proccmd

または単に:

grep -az PROC_NAME /proc/PID/cmdline

一緒に、これらは実行されているスクリプトを表示する必要があります。./必要なものすべてで始まるものについてはprocdirです。


pwdxはこれよりも優れています。
ビヨン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.