OS X: Yerleşik bir zamanlayıcı programı var mı?


10

Gelecekte belirli bir saat / tarihte parametrelerle yürütülecek bir görev zamanlamak istiyorum.

OS X böyle bir araç içeriyor mu (komut satırı olsa bile)? Değilse, bunu gerçekleştirmek için ücretsiz veya nispeten ucuz araçlar var mı?

Yanıtlar:


14

KeithB cevabı doğru olsa da, aslında, cron kaldırılmasına karar verildi lehine OS X özgü launchd .

Çalıştırılacak komutlar launchd, Apple "plists" veya gerçekten sadece XML dosyaları olan özellik listelerinde açıklanmaktadır:

<?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>

Bunu söyledikten sonra, çalıştırılacak komutları zamanlamanın çok kullanıcı dostu (ne de Mac benzeri) bir yolu değildir. SuperUser'daki bu soru , aşağıdakiler de dahil olmak üzere birkaç GUI alternatifini listeler:

Lingon Screencap

launchd Editör (5 $ Shareware)

Ekran görüntüsü


3
Launchd'un "tescilli" olduğu adil bir karakterizasyon değildir. Apple hevesle açarak launchd.macosforge.org adresinden satın aldı ve FreeBSD'ye taşındı.
ohmantics

@ohmantics: Tamam, adil bir nokta. "Spesifik" daha iyi bir açıklama mı?
Josh

Yeterince yakın. :-) Apple bunu yarattı, ancak BSD benzeri işletim sistemlerinde daha geniş bir şekilde benimsenmesini bekliyorum.
ohmantics

@calavera: Düzenleme için teşekkürler. Büyük web sitelerindeki belgeler bu şekilde kaldırıldığında nefret ediyorum. Ne yazık ki daha az alakalı olan yeni bir bağlantı ekledim, özellikle cronkullanımdan kaldırıldığından bahsetmiyor :-(
Josh

np ... ne yazık ki Apple bunu çok yapıyor gibi görünüyor: /
Robert S Ciaccio

4

Basit bir şey istiyorsanız, Automator iş akışlarını iCal ile de başlatabilirsiniz. Aksi takdirde bunu launchd aracılığıyla yapardım.


İCal ile ilgili tek sorun, görevin çalışması için oturum açmanız gerektiğidir (doğru?)
Josh

evet, bunu yapabilmek için giriş yapman gerektiğini düşünüyorum. Bu konuda fırlatma sürecini tavsiye ederim, ancak bazı insanlar sadece iCal kullanmayı tercih
ederler

iCal çok daha kolay bir çözümdür! Gönderdiğim ekran kapaklarına bakın. Emin nasıl korkutucu olabilir :-) görebilirsiniz
Josh

sadece açıklama için, ekran görüntüleriniz lansman kurulumu içindir, değil mi?
jmlumpkin

2

İstediğinizi yapan iki Unix komut satırı aracı vardır. atgelecekte belirli bir zamanda bir kez yürütülecek bir görev zamanlamanıza olanak tanır. Tabii ki, görevin bir kısmı başka bir görev zamanlamak olabilir.

cron günün saatine, haftanın gününe vb. göre aynı anda düzenli olarak yürütülecek görevleri zamanlamanızı sağlar.

Unutulmaması gereken bir nokta, makineniz planlandığı sırada çalışmıyorsa, her ikisinin de görevleri çalıştırmayacağıdır. Makinenin bir sonraki önyüklemesinde zamanlanmış görevleri çalıştıracak anacron gibi alternatifler vardır.


1
Varsayılan olarak, "at" komutunun devre dışı olduğunu unutmayın. Nasıl etkinleştirileceğini bulmak için "adam atrun" kullanın.
Kristopher Johnson

2

iCal, AppleScripts'i çalıştırmak , uygulamaları başlatmak ve bir zamanlamaya göre görevleri gerçekleştirmek için kullanılabilir.

İCal kullanımıyla ilgili sınırlamalar vardır, ancak Mac OS X'te bulunur ve kurulumu nispeten kolaydır. Zamanlanmış bir AppleScript'in nasıl kurulacağına ilişkin sınırlamalar ve görsel bir yürüyüş yukarıdaki bağlantıda bulunmaktadır.

Mac OS X'te iCal ile zamanlanmış bir AppleScript oluşturma

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.