私は、直接の親からその最古の祖先(通常launchd)までの選択プロセスの親ツリーを明らかにするOSXツールを維持しています。launchdを使ってプロセスが間接的に起動された場合のプロセスの「本当の」親プロセスの取得
しかし、バンドルアイコンをダブルクリックする、またはコマンドopen
を使用してbashからプロセスを実行するなどのイベントを使用して、検査プロセスがlaunchdから間接的に起動された場合、このプロセスチェーンが壊れる可能性があります。このような場合は、bash
またはfinder
のいずれかに対応しています。
おそらく、これらのイベントがこのメカニズムを介してlaunchdに渡っていると仮定しているので、XPCメッセージングレイヤーは答えです。しかし、他の利用可能なOSXフレームワークはいつでも歓迎します。
EDIT:
私は実行中のプロセス自体を切り離した場合、私はそれがPPIDだ復元できませんでしたことを理解し、私の目標は、プロセスの作成を開始し、発信者を追跡することです。
ありがとう
あなたが探しているものを全くわからないが、プロセス自体を切り離した場合、それはその直接の親としてのpid 1(INIT)を持っている.... –
私は私ができなかったことを理解しプロセスが人生の途中で切り離されたときにppidを取得しないでください。しかし、恐らくダブルクリックイベントから生成されたばかりのプロセス呼び出し元をトレースする方法があります。ファインダとlaunchdの間の通信をトレースすることによって – Zohar81