launchd
Daemons'u ( /Library/LaunchDaemons
veya /System/Library/LaunchDaemons
) kök olarak çalıştırır ve kullanıcıların giriş yapmış olup olmadıklarına bakılmaksızın bunları çalıştırır. Başlatma Aracıları ( /Library/LaunchAgents/
veya ~/Library/LaunchAgents/
), kullanıcı bu kullanıcı olarak oturum açtığında çalıştırılır. Setuid'i betiklerde betik kullanan kullanıcıyı değiştirmek için kullanamazsınız. /System
Ben senin koyarak tavsiye böylece dizin, Mac OS X görevleri için ayrılmıştır launchd
ya içine Mülk Listelerini /Library
veya ~/Library
mantıklı olarak klasörde.
Yani ilk adım bir ajan veya bir daemon yapıp yapmadığınızı belirlemektir.
İkinci adım .plist
dosyanızı oluşturmaktır. Bu konuda yardımcı olması için Lingon gibi GUI tabanlı programları kullanabilirsiniz veya en sevdiğiniz metin düzenleyicisini kullanabilirsiniz:
.plist
Her saatte bir komut dosyası çalıştırmak için bir örnek ( StartInterval
veya StartIntervalCalendar
istediğimiz anahtarlar - StartInterval
bir öğenin her x
saniye, StartIntervalCalendar
belirli bir saat ve / veya tarih için gerçekleşmesi. StartCalendarInterval ile yaptığım bir örnek için SuperUser'da 126907'ye bakın ):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.IDENTIFIER_HERE.SOMETHING</string>
<key>OnDemand</key>
<true/>
<key>RunAtLoad</key>
<false/>
<key>UserName</key>
<string>USERNAME HERE</string>
<key>Program</key>
<string>/PATH/TO/SCRIPT</string>
<key>ProgramArguments</key>
<array>
<string>Argument_1</string>
<string>Argument_2</string>
</array>
<key>StartInterval</key>
<integer>3600</integer>
</dict>
</plist>
.plist
Komut dosyanızı ve gereken bağımsız değişkenleri işaret edecek şekilde değiştirin (bağımsız değişkenler ayrı satırlardadır) ve dosyayı Etiket değeriyle aynı ada sahip ancak .plist
sonunda kaydedin . (örneğin, local.my-mac.flickrstats
olarak kaydedilir local.my-mac.flickrstats.plist
). Henüz yapmadıysanız, Daemon (her zaman çalışır) oluştururken veya (yalnızca oturum açmış durumdasınız) veya (herhangi bir kullanıcı oturum açmış durumda iken) bu .plist
dosyayı taşıyın ./Library/LaunchDaemons
~/Library/LaunchAgents
/Library/LaunchAgents
İşi başlatmak için launchctl
gerektiği şekilde çalıştırmak istediğiniz dosyayı yükleyin. İçindeki öğeler /Library
için sudo kullanmalısınız: örneğin,sudo launchctl load -w /PATH/TO/PLIST
Başvuru için ayrıca Süper Kullanıcı ile ilgili aşağıdaki soruları da inceleyin: Kök olarak Launchd komutu , Sistem çapında bir arka plan programı yükleyin ve Her gün çalıştırmak için bir komut dosyasını nasıl alabilirim