OS XでプログラムのPIDを使用してプロセスの現在の作業ディレクトリを取得する方法はありますか?OS X上でPIDを使用してプロセスの現在の作業ディレクトリを取得する
ココア、カーボン、AppleScriptのいずれも使用できます。
"pwd"を現在の端末ウィンドウ/タブ(作業領域に影響を与えたくない)に送信することはできません。
Linuxコマンド「pwdx」もまた、容認できないです(念のため、あなたが「ココア」の部分の上に読む)
OS XでプログラムのPIDを使用してプロセスの現在の作業ディレクトリを取得する方法はありますか?OS X上でPIDを使用してプロセスの現在の作業ディレクトリを取得する
ココア、カーボン、AppleScriptのいずれも使用できます。
"pwd"を現在の端末ウィンドウ/タブ(作業領域に影響を与えたくない)に送信することはできません。
Linuxコマンド「pwdx」もまた、容認できないです(念のため、あなたが「ココア」の部分の上に読む)
次の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以降で
:
lsof -a -p $PID -d cwd -Fn
(プレフィックスsudo
持つプロセスがrootによって所有されている場合。)