launchd
menjalankan Daemon ( /Library/LaunchDaemons
atau /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 /System
direktori dicadangkan untuk tugas-tugas Mac OS X jadi saya sarankan menempatkan Anda launchd
plists menjadi baik /Library
atau ~/Library
folder itu masuk akal.
Jadi langkah pertama adalah menentukan apakah Anda membuat agen atau daemon.
Langkah kedua adalah membuat .plist
file Anda . Anda dapat menggunakan program berbasis GUI seperti Lingon untuk membantu ini atau cukup menggunakan editor teks favorit Anda:
Contoh .plist
untuk menjalankan skrip setiap jam ( StartInterval
atau StartIntervalCalendar
kunci yang kami inginkan - StartInterval
untuk item terjadi setiap x
detik, StartIntervalCalendar
untuk 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 .plist
seperlunya 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 .plist
di akhir. (misalnya, local.my-mac.flickrstats
akan disimpan sebagai local.my-mac.flickrstats.plist
). Jika Anda belum melakukannya, pindahkan .plist
file itu ke /Library/LaunchDaemons
saat 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 launchctl
seperlunya 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