OS X: Apakah ada program penjadwal bawaan?

10

Saya ingin menjadwalkan tugas untuk dieksekusi dengan parameter pada waktu / tanggal tertentu di masa depan.

Apakah OS X menyertakan alat semacam itu (bahkan jika itu adalah command-line)? Jika tidak, apakah ada alat gratis atau relatif murah di luar sana untuk mencapai ini?

glenneroo
sumber

Jawaban:

14

Sementara jawaban KeithB benar, sebenarnya, cron sudah usang mendukung OS X spesifik launchd .

Perintah yang harus dijalankan launchddijelaskan dalam "daftar" Apple, atau daftar properti, yang sebenarnya hanya file XML:

<?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>com.apple.periodic-daily</string>
    <key>ProgramArguments</key>
    <array> 
        <string>/usr/sbin/periodic</string>
        <string>daily</string>
    </array>
    <key>LowPriorityIO</key>
    <true/>
    <key>Nice</key>
    <integer>1</integer>
    <key>StartCalendarInterval</key>
    <dict>  
        <key>Hour</key>
        <integer>3</integer>
        <key>Minute</key>
        <integer>15</integer>
    </dict>
</dict>
</plist>

Karena itu, ini bukan cara penjadwalan yang sangat user friendly (atau mirip Mac) untuk dijalankan. Pertanyaan tentang SuperUser ini mencantumkan beberapa alternatif GUI, termasuk:

Lingon Screencap

launchd Editor ($ 5 Shareware)

Cuplikan Layar

Josh
sumber
3
Ini bukan karakterisasi yang adil bahwa launchd adalah "milik." Apple dengan penuh semangat membuka sumbernya di launchd.macosforge.org dan telah porting ke FreeBSD.
ohmantics
@ohmantics: Ok, titik adil. Apakah "spesifik" deskripsi yang lebih baik?
Josh
Cukup dekat. :-) Apple menciptakannya, tapi saya berharap akan melihat adopsi yang lebih luas di seluruh OS yang mirip BSD.
ohmantics
@calavera: Terima kasih atas hasil editnya. Saya benci ketika dokumen di situs web utama dihapus seperti itu. Saya menambahkan tautan baru yang sayangnya kurang relevan, itu tidak secara khusus menyebutkan cronmenjadi usang :-(
Josh
np ... sayangnya Apple sepertinya banyak melakukannya: /
Robert S Ciaccio
4

Anda juga dapat memulai alur kerja Automator dengan iCal jika Anda hanya menginginkan sesuatu yang sederhana. Kalau tidak, saya akan melakukannya melalui launchd.

jmlumpkin
sumber
Satu-satunya masalah dengan iCal adalah Anda harus masuk untuk menjalankan tugas (benar?)
Josh
ya, saya pikir Anda harus masuk untuk melakukan ini. Saya akan merekomendasikan proses launchd atas ini, tetapi beberapa orang lebih suka menggunakan iCal dan selalu masuk.
jmlumpkin
iCal adalah solusi yang lebih mudah! Lihat tutup layar yang saya poskan. Saya yakin dapat melihat bagaimana mereka bisa mengintimidasi :-)
Josh
hanya untuk klarifikasi, tangkapan layar Anda untuk pengaturan launchd, benar?
jmlumpkin
2

Ada dua alat baris perintah Unix yang melakukan apa yang Anda inginkan. atakan memungkinkan Anda untuk menjadwalkan tugas untuk dieksekusi satu kali pada waktu tertentu di masa depan. Tentu saja, bagian dari tugas itu bisa menjadwalkan tugas lain.

cron memungkinkan Anda untuk menjadwalkan tugas untuk dieksekusi secara teratur pada waktu yang sama, berdasarkan waktu, hari dalam seminggu, dll.

Satu hal yang perlu diperhatikan adalah bahwa kedua hal ini tidak akan menjalankan tugas jika mesin Anda tidak berjalan pada saat dijadwalkan. Ada beberapa alternatif, seperti anacron, yang akan menjalankan tugas terjadwal pada saat mesin dinyalakan.

KeithB
sumber
1
Perhatikan bahwa, secara default, perintah "at" dinonaktifkan. Gunakan "man atrun" untuk mengetahui cara mengaktifkannya.
Kristopher Johnson
2

iCal dapat digunakan untuk menjalankan AppleScripts , meluncurkan aplikasi, dan melakukan tugas sesuai jadwal.

Ada batasan untuk menggunakan iCal, tetapi sudah termasuk dengan Mac OS X dan relatif mudah diatur. Batasan dan visual walk through tentang cara mengatur AppleScript terjadwal termasuk dalam tautan di atas.

Menyiapkan AppleScript terjadwal dengan iCal di Mac OS X

Graham Miln
sumber