2008-09-13 5 views
1

残念ながら、私の質問は、同じプロセスで作成された2つのウィンドウを追跡するのと同じくらい単純ではありません。ここでX11で関連するウィンドウを追跡するにはどうしたらいいですか?

は私が持っているものです。

  • 2人のユーザー、ジャックとジムをリモートで同じUnixシステムにログインし、
  • Xサーバを実行しているジャックはA開くアプリケーション、「AwesomeApp」を実行しますXウィンドウ内のGUI
  • ジムは独自のGUIウィンドウを開きます
  • ここで、JackはHISであるため、最初のウィンドウ(「AwesomeApp」など)を所有するプロセスと通信するスーパーバイザアプリケーションを実行します'AwesomeApp'のインスタンス
  • 監督者のインスタンスが「AwesomeApp」ウィンドウのどのインスタンスを自分のものであると見つけることができますか?

はAaaahhhh ...はいそれは働くことができ、ユーザーごとにそれを見ています。 私は、ユーザーに2つの異なる場所から同じユーザーアカウントでログインできないことを伝える限り、

答えて

1

あなたはAwesomeAppのジャックのインスタンスのプロセスIDを取得するためにpgrepを使用することができます。

pgrep -u Jack AwesomeApp 


ですから、シェルスクリプトからスーパーバイザアプリケーションを起動した場合、あなたは次のような何かができる:

AWESOME_ID=`pgrep -u $USER AwesomeApp 2>/dev/null` 

# run the supervisor application and pass the process id as the argument 
supervisor $AWESOME_ID 


また、pgrepやpsのような外部プログラムを使用したくない場合は、 /procの処理のために直接。

関連する問題