2009-10-05 15 views
5

OS XでプログラムのPIDを使用してプロセスの現在の作業ディレクトリを取得する方法はありますか?OS X上でPIDを使用してプロセスの現在の作業ディレクトリを取得する

ココア、カーボン、AppleScriptのいずれも使用できます。

"pwd"を現在の端末ウィンドウ/タブ(作業領域に影響を与えたくない)に送信することはできません。

Linuxコマンド「pwdx」もまた、容認できないです(念のため、あなたが「ココア」の部分の上に読む)

答えて

1

次のAppleScriptは、あなたの問題のための部分的なソリューションです。変数thePIDのUNIX PIDが与えられると、最初にプロセスの名前が取得されます。次に、do shell scriptコマンドをアプリケーションプロセスに送信し、子プロセスが生成されます。子プロセスは現在のディレクトリを継承し、pwdコマンドを実行することによって決定できます。

tell application "System Events" 
    set theName to name of first process whose unix id is thePID 
end tell 

tell application theName 
    do shell script "/bin/pwd" 
end tell 

スクリプトは、AppleEventのフレームワーク(例えば、純粋なPOSIXプロセス)にリンクしていないプロセスのために動作しません。 10.5以降で

8

lsof -a -p $PID -d cwd -Fn

(プレフィックスsudo持つプロセスがrootによって所有されている場合。)

関連する問題