プロセスがどこで(どのディレクトリから)コマンドされているかを知るにはどうすればよいですか?

プロセスがどこで(どのディレクトリから)コマンドされているかを知るにはどうすればよいですか?

あるディレクトリから開始するように指示されたシミュレーションを実行していますが、どのディレクトリからシミュレーションを実行したか覚えていません。シミュレーションの実行にはPythonを使用しているので、

ps aux | grep PID

実行中のプログラムが配置されている場所のみを表示します。 (/usr/bin/python) ただし、実行中のファイルが配置されている最初のポイントから、コマンドがどこで操作されるかを知りたいのです。

役に立つコメントがあれば、ぜひお願いします!

ありがとう :)

答え1

history実際にどのコマンドを使用したかを確認するには、 コマンドを使用することをお勧めします。

答え2

Python スクリプトのパスを確認するには、通常、次のようにしますps(w必要に応じて、wide オプションを使用します)。

~% ps ugxw | grep python
romano    2136  0.0  0.2  10524  4132 ?        S    09:13   0:00 python /home/romano/software/wallpap/bg_slideshow.py
romano    5839  0.0  0.0   4440   832 pts/1    S+   10:00   0:00 grep python

たとえば、プロセス2136はスクリプトです/home/romano/software/wallpap/bg_slideshow.py。プロセスの作業ディレクトリがどれであるかを知りたい場合は、次のようにします。

~% ls -l /proc/2136/cwd
lrwxrwxrwx 1 romano romano 0 Nov 11 10:04 /proc/2136/cwd -> /home/romano

プロセスは/home/romano現在のディレクトリとして実行されています。

ファイルには、/proc/2136/cmdline完全なコマンドライン仕様が含まれています。これは、 で見られるものpsと同じですが、コマンドと引数は0値のバイトで区切られています(スペースを保持するため)。ターミナルで次のように表示できます。

% cat /proc/2136/cmdline | tr "\0" " "
python /home/romano/software/wallpap/bg_slideshow.py % 

ここで、「tr」は見つかった「nul」文字ごとにスペースを出力します。(末尾の誤った % は、ファイルが改行文字で終了していないために発生します)。

/proc ファイルシステムは本当に便利なツールです --- 完全なドキュメントは少し「難しい」ですが、リンクがあると便利なことがよくあります。https://www.kernel.org/doc/Documentation/filesystems/proc.txt

答え3

コマンドを使用しますwhich。たとえば、which ifconfigifconfig コマンドの場所を出力します。

関連情報