launchdmenjalankan Daemon ( /Library/LaunchDaemonsatau /System/Library/LaunchDaemons) sebagai root, dan akan menjalankannya terlepas dari apakah pengguna masuk atau tidak. Peluncuran Agen ( /Library/LaunchAgents/atau ~/Library/LaunchAgents/) dijalankan ketika pengguna masuk sebagai pengguna itu. Anda tidak dapat menggunakan setuid untuk mengubah pengguna yang menjalankan skrip pada daemon. The /Systemdirektori dicadangkan untuk tugas-tugas Mac OS X jadi saya sarankan menempatkan Anda launchdplists menjadi baik /Libraryatau ~/Libraryfolder itu masuk akal.
Jadi langkah pertama adalah menentukan apakah Anda membuat agen atau daemon.
Langkah kedua adalah membuat .plistfile Anda . Anda dapat menggunakan program berbasis GUI seperti Lingon untuk membantu ini atau cukup menggunakan editor teks favorit Anda:
Contoh .plistuntuk menjalankan skrip setiap jam ( StartIntervalatau StartIntervalCalendarkunci yang kami inginkan - StartIntervaluntuk item terjadi setiap xdetik, StartIntervalCalendaruntuk waktu dan / atau tanggal tertentu. Lihat 126907 tentang SuperUser untuk contoh yang saya buat dengan StartCalendarInterval):
<?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>
Ubah .plistseperlunya untuk mengarahkan ke skrip Anda dan argumen apa pun yang diperlukan (argumen ada di baris terpisah) dan simpan file dengan nama yang sama dengan nilai Label tetapi dengan .plistdi akhir. (misalnya, local.my-mac.flickrstatsakan disimpan sebagai local.my-mac.flickrstats.plist). Jika Anda belum melakukannya, pindahkan .plistfile itu ke /Library/LaunchDaemonssaat membuat Daemon (berjalan sepanjang waktu) atau ke ~/Library/LaunchAgents(hanya Anda yang masuk) atau /Library/LaunchAgents(pengguna mana pun yang masuk).
Untuk memulai pekerjaan yang ingin Anda jalankan launchctlseperlunya untuk memuat file. Untuk item dalam /Library, Anda harus menggunakan sudo: misalnya,sudo launchctl load -w /PATH/TO/PLIST
Untuk referensi, periksa juga pertanyaan-pertanyaan berikut tentang Pengguna Super: Luncurkan perintah sebagai root , Muat daemon lebar sistem , dan Bagaimana saya bisa menjalankan skrip setiap hari