Açıklama
launchd, hem genel olarak sistem hem de bireysel kullanıcılar için süreçleri yönetir.
launchd için birincil ve tercih edilen arayüz, kullanıcı veya yöneticinin işleri yüklemesine (load) ve kaldırmasına (unload) olanak tanıyan launchctl(1) aracıdır. Mümkün olduğunda, işlerin kendi yapılandırma dosyalarında belirtilen kriterlere göre talep üzerine (on demand) başlatılması tercih edilmelidir.
launchd ayrıca sistemdeki uygulamalar ve framework'ler içinde paketlenmiş XPC servislerini de yönetir.
Önyükleme (boot) sırasında launchd, sistemdeki ilk süreç olarak çalışmak ve sistemin geri kalanını başlatmak için çekirdek (kernel) tarafından çağrılır.
launchd'yi doğrudan çağıramazsınız.
Notlar
Darwin işletim sistemlerinde, bir arka plan programını (daemon) başlatmanın kurallı yolu, geleneksel POSIX ve POSIX benzeri mekanizmaların veya OS X'in önceki sürümlerinde sunulan mekanizmaların aksine launchd aracılığıyladır. Bu alternatif yöntemler kullanımdan kaldırılmış (deprecated) olarak kabul edilmeli ve yeni projeler için uygun görülmemelidir.
launchd sözlüğünde, bir arka plan programı (daemon), tanım gereği, tüm istemciler için tek bir örneği (instance) bulunan sistem genelinde bir servistir. Bir temsilci (agent) ise kullanıcı bazında çalışan bir servistir. Arka plan programları (daemons), arayüz (UI) görüntülemeye veya bir kullanıcının oturum açma oturumuyla doğrudan etkileşime girmeye çalışmamalıdır. Kullanıcıyla etkileşimi içeren her türlü iş temsilciler (agents) aracılığıyla yapılmalıdır.
ServiceType değeri System olarak işaretlenmiş XPC servisleri, işlevsel olarak arka plan programlarına (daemons) eşdeğerdir ve aynı Mach önyükleme ad alanını (Mach bootstrap namespace) paylaşarak aynı ortamda çalışırlar. ServiceType değeri User olarak işaretlenmiş XPC servisleri, LimitLoadToSessionType anahtarı Background oturumunu belirten temsilcilere (agents) eşdeğerdir ve aynı Mach önyükleme ad alanını paylaşarak aynı ortamda çalışırlar. Kullanıcı oturumları hakkında daha fazla bilgi için launchd.plist(5) kılavuzuna bakın.
Darwin platformlarında, bir kullanıcı ortamı; belirli bir Mach önyükleme alt kümesini (Mach bootstrap subset), denetim oturumunu (audit session) ve POSIX tarafından tanınmayan diğer özellikleri içerir. Bu nedenle, uygun setuid(2) ve setgid(2) sistem çağrılarının yapılması, belirtilen bir kullanıcının kimliğine tamamen bürünmek için yeterli değildir. Bir servisi launchd temsilcisi (agent) veya kullanıcı bazlı bir XPC servisi olarak çalıştırmak, bir süreci o kullanıcının eksiksiz kimliğiyle çalıştırmanın tek yoludur.
Dosyalar
~/Library/LaunchAgents Kullanıcı tarafından sağlanan kullanıcı bazlı temsilciler. /Library/LaunchAgents Yönetici tarafından sağlanan kullanıcı bazlı temsilciler. /Library/LaunchDaemons Yönetici tarafından sağlanan sistem genelindeki arka plan programları. /System/Library/LaunchAgents Apple tarafından sağlanan kullanıcı bazlı temsilciler. /System/Library/LaunchDaemons Apple tarafından sağlanan sistem genelindeki arka plan programları.
Ayrıca Bakınız
launchctl(1), launchd.plist(5)
Geliştirici Belgeleri
Daemons and Services Programming Guide aşağıdaki URL adresinde bulunabilir:
Darwin 25 November, 2013 Darwin