私は最終的にを呼び出すRubyコマンドラインスクリプト(rufus.sh
)を実行していますがThread.new
、これは以下のようにUNIXプロセスを生成します。複数のディレクトリに対してこのスクリプトを実行しました。ps
コマンドの出力は次のとおりです。下の最後の(最も右側の)列はCOMMAND
(COMD
)で、これは基本的にプロセスの名前です。問題は、COMMAND
作業ディレクトリ(プロセスの開始時に現在のディレクトリ)が含まれないことです。この問題を解決または含めるための最良の方法は何ですかCOMMAND
?ありがとう、チラグ
ps -ef | grep runner
web 7532 1 0 Oct08 ? 00:02:08 /usr/local/bin/ruby ./script/runner ./config/jobs/control.rb critical_alert start
web 21114 1 1 Oct09 ? 02:49:28 /usr/local/bin/ruby ./script/runner ./config/jobs/control.rb task start
web 19028 1 1 10:45 pts/0 00:00:34 /usr/local/bin/ruby ./script/runner ./config/jobs/control.rb task start
web 19029 1 0 10:45 pts/0 00:00:10 /usr/local/bin/ruby ./script/runner ./config/jobs/control.rb critical_alert start
答え1
これがあなたの質問に答えるかどうかはわかりませんが、pwdx
すべてのプロセスの現在の作業ディレクトリを提供します。
このように:
pwdx <PID>
Ulrich Schwarzが言ったように走ることもできます。
ls -l /proc/PID/cwd
答え2
たぶんターゲットとして発見されるかもしれません/proc/(pid)/cwd
。そうだが心が楽ではない/proc
。
答え3
追加情報がすべて必要ない場合は、次のことを試すことができます。
ps -ef | grep runner | awk {'print$8'} | xargs which
8番目の列ps -ef
(私はOS Xシステムの列なので、COMD
変更する必要があるかもしれません)をつかみますwhich
。
これは私のコンピュータで次のように動作します。
$ ps -ef | grep grep
mfc 25780 21222 0 11:54 pts/5 00:00:00 grep grep
$ ps -ef | grep grep | awk {'print$8'}
grep
$ ps -ef | grep grep | awk {'print$8'} | xargs which
/bin/grep