2017-04-05 6 views
0

私はターミナルでxcodeワークスペースを開き、しばらく待ってから、そのワークスペースを閉じたいと思っています(xcodeは、自動ビルドプロセスでこれを必要とするプロジェクトでいくつかの隠された魔法を持っています)。Mac Terminal Openコマンド - 開いているアプリケーションのPIDを保存しますか?

ので

pid=`open proj.xcworkspace` 
sleep 30 
kill $pid 

like-何か複数のXcodeプロジェクトは、同じ時間で実行されている可能性があるため。私は単純にxcodeを殺すことはできません。私が始めたプロセスだけです。

ターミナルで開いたアプリケーションのPIDを取得するにはどうすればよいですか?

+0

'open'は必ずしも新しいプロセスを起動しません...私が何を意味するかの実施例です。アプリケーションがすでに実行されている場合、既存のプロセスには、ドキュメントを開くように通知するイベントが送信されます。 XcodeのAppleScriptインターフェイスは、あなたがやろうとしていることをサポートしているようです。ドキュメントには、 'workspace document'クラスの関連する例もあります。 –

答えて

-1

現在Process ID$$でキャッチできます。

Process IDsps -C PROGRAMM_NAME -o pid=で検索できます。追加


[email protected]:~$ ps -C icedove -o pid= 887 [email protected]:~$ ps -C vlc -o pid= 29405 

...ここ

#!/bin/bash 

i=0 
while [ "$i" -le 10 ] 
do 
    example.sh & 
    Pid[$i]=$(ps -C "example.sh" -o "pid=") 
    Pid[$i]=$(echo "${Pid[$i]}" | tail -n 1) 
    #echo "${Pid[$i]}" 
    i=$(($i +1)) 
done 

for PID in "${Pid[@]}" 
do 
    kill "$PID" 
done 
exit 0 
+0

私は現在のプロセスIDは必要ありません。私は多くの可能なインスタンスのうちの1つのインスタンスを削除したいだけです。私はこれが役立つとは思わない。 –

+0

あなたは '$$'は必要ないかもしれませんが、他の例はあなたのニーズに合っているはずです。 – suleiman

+0

まだ分かりません。私はxcodeの2つのインスタンスを実行している。 xcodeの別のインスタンスを開きます。他のインスタンスを閉じずに開いたインスタンスをどのように閉じることができますか? –

関連する問題