Saya punya pekerjaan yang cukup sederhana yang ingin saya jalankan setiap jam. Saya bisa melakukannya dengan menggunakan cron
, tetapi saya pikir saya akan menggunakan ini untuk belajar launchd
, karena saya mendengar hal-hal baik tentang itu. Saya mendapatkan man launchd.plist
halaman sebagai referensi, tetapi saya sedang mencari sesuatu yang lebih didasarkan pada membangun pekerjaan contoh.
19
cron
pertanyaan, bukankah superuser.com akan menjadi tempat yang tepat? Karenalaunchd
ini adalah versi Applecron
(dan jugadaemontools
, dan mungkin hal-hal lain), saya pikir ini adalah pilihan terbaik saya.Jawaban:
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 Andalaunchd
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
atauStartIntervalCalendar
kunci yang kami inginkan -StartInterval
untuk item terjadi setiapx
detik,StartIntervalCalendar
untuk waktu dan / atau tanggal tertentu. Lihat 126907 tentang SuperUser untuk contoh yang saya buat dengan StartCalendarInterval):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 sebagailocal.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
sumber
Saya tahu ini bukan tutorial yang bagus , tetapi Anda bisa melihat Panduan Pemrograman Daemon dan Layanan dari Apple, yang memiliki bagian tentang Penjadwalan Pekerjaan Jangka Waktu.
Saya tahu ini bukan tutorial lengkap, tetapi, dengan itu, Anda dapat memahami dasar-dasarnya
launchd
.Ini juga memberikan contoh
crond
tugas:sumber
Ini banyak membantu saya: http://launchd.info
Ini mencakup konfigurasi, administrasi dan pemecahan masalah menggunakan Terminal atau launchd GUI LaunchControl . Contoh disediakan juga.
sumber
Saya tahu Anda mencari tutorial, tetapi jika seseorang datang ke sini sebagai bagian dari mencari alat untuk membantu mereka membuat / mengedit entri launchd, saya telah menggunakan ini sebelumnya: Lingon (sourceforge)
Ini tidak lagi dikembangkan secara aktif tetapi apa yang ada berfungsi (dan jelas termasuk sumber dll). Saya telah menggunakannya di Snow Leopard untuk menjadwalkan pencadangan ke cloud Amazon, dll.
sumber