2014-06-17 12 views
7

Bir uygulama işlemi bir XPC yardımcı sürecini başlattığında, aslında fork()/exec() kendisini klasik UNIX stilinde yapmaz. Bunun yerine, bunun için kirli bir iş yapar, launchd bir mesaj gönderir. Böylece, ana işlemi XPC işleminde sorgularsanız, başlatma işlemi olarak geri gelir.OSX Etkinlik İzleyicisi, XPC görevlerini başlatıcı işlemleriyle nasıl eşleştirir?

Ancak, hiyerarşik süreç görünümünde açılır Activity Monitor, XPC yardımcı süreçleri tüm örneğin, onları istenen orijinal uygulamadan aşağıda gösterilmiştir eğer: Ben yazılımında

Example of XPC helper for Safari showing launchd as parent process

Süreçler arasındaki bu ilişkiyi bilmek, çok yararlı olacaktır. Şimdiye kadar düzenli BSD ana işlem bilgilerini kullanıyoruz, ancak her şey XPC'ye doğru ilerledikçe, bu artık fazla bir şey değil.

Yani:

  • Nerede XPC işlemleri için saklanan "orijinal" Üst süreç bilgidir?
  • Etkinlik İzleyicisi buna nasıl erişir?

İlgili bir kext var, bu yüzden bu bilgiyi kullanıcı alanı yerine çekirdeğe doğru çekmekten mutluluk duyarız, ancak depolandığı yeri bile anlayamıyorum.

Güncelleme: Apple'ın darwin-çekirdek posta listesinde Tartışma: http://lists.apple.com/archives/darwin-kernel/2015/Mar/msg00001.html

+1

+1 Bu sitedeki ilginç soru sormak için bir kez! – trojanfoe

+0

Ben de bunu denemeye çalışıyorum! – TheDarkKnight

cevap

0

O launchd hayal Aradığınız ne olduğunu bilir.

Hizmet Yönetimi çerçevesi, aradığınız şeyi kolayca size sunabilecek bir yönteme sahiptir.

CFDictionaryRef SMJobCopyDictionary(CFStringRef domain, CFStringRef jobLabel); işlevi.

+0

OSX öncesi sürüm belgelerinden, bu işlevin, Yosemite (10.10) 'da kullanımdan kaldırılmış olabileceğini unutmayın: https://developer.apple.com/library/prerelease/mac/documentation/ServiceManagement/Reference/ServiceManagement_header_reference/index .html # // apple_ref/c/func/SMJobCopyDictionary – TheDarkKnight

+2

SMJobCopyDictionary öğesinin burada yardımcı olacağını sanmıyorum. Görebildiğiniz gibi, bunlar Safari için sözlükte yer alan girdilerdir: http://pastebin.com/QAgDEUim – TheDarkKnight

+0

Evet, bu işlevle de fazla şansım yok. – pmdj