Cron? Launchd? ICal ??
Öyleyse nasıl?
Cron? Launchd? ICal ??
Öyleyse nasıl?
Yanıtlar:
Başvuru için, tüm 3 seçenek işe yarayacak. Ancak, iCal seçeneğinin diğerlerinden daha fazla sınırlaması var.
(Cron'u düzenlemek ve diğer cevaplarda belirtildiği gibi lansman için GUI'ler var)
Cron en yalındır ve iyi bilinen ve mevcut birçok ders vardır. Coles Notes, son satırı aşağıdan crontab'ınıza eklemektir ( komut satırında düzenleyerek /etc/crontab
veya kullanarak crontab
):
MM HH DD MM WKD -- Minutes, Hour, Day, Month, Weekday (eg. Sun, Mon)
MM HH * * * USERNAME /PATH/TO/SCRIPT
00 3 * * * chealion /myscript.sh "Runs at 03:00 every day"
Mac OS X'te, cron
aslında yerini almıştır, launchd
ancak yine de kullanabileceğiniz anlamıyla launchd
geriye doğru uyumludur, ancak aslında tüm işi yapmaktadır.cron
cron
launchd
Kullanmak isterseniz launchd
siz de Super User burada başka sorular kontrol etmek istersiniz: (. Örn ? Ben root olarak launchd komutu nasıl çalıştırabilirim ) Eğer yapılandırma dosyası (Plist dosyası) kaydetmek istediğiniz yere kadar ne zaman çalıştığı, hangi dizinde depolandığına ve nasıl yüklendiğine (örn. sudo kullanıp kullanmamaya bağlı) bağlıdır - cron'a benzer.
Günlük çalıştırma pistinin çalıştırıldığı örnek bir çalışma (dosyanın ve etiketin aynı olduğundan emin olun - eksi etiketin eksi) - bu komut dosyası her gün gece yarısından sonra 3 dakika sonra çalıştırılı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>local.IDENTIFIER_HERE.SOMETHING</string>
<key>KeepAlive</key>
<false/>
<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>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>00</integer>
<key>Minute</key>
<integer>03</integer>
</dict>
</dict>
</plist>
Bilgisayar uykuda veya kapalıyken planlanmışsa, başlatılan görevlerin bilgisayarın yeniden kullanılabilir hale geldiğinde (açtıktan veya uyandıktan sonra) çalışacağını not etmek de önemlidir. olmuştur. Düzenleme: Makine kapalıysa, o zaman herhangi bir açılış olayını kaybedeceğinizi söyleyen bir Apple belgesindeydim (betiğiniz başlangıçta başlatılmayacak), (uyku uyanırken betiği başlatır)
Diğer bir seçenek ise " at " kullanmaktır ("man at" manüel sayfasını kontrol ediniz). Betik, örneğin:
echo "sh $0 $@" | at `date +%H:%M` tomorrow
(her 10 dakikada bir çalıştırmak için "yarın" yerine "+ 10 dakika" kullanın; zamanlamayı durdurmak için, zamanlanmış iş kimliklerini listelemek için "-l" yapın ve sonra işi kaldırmak için " -d id " yapın)
İlk önce karşılık gelen arka planını (atrun) başlatmanız gerekebilir (bkz. Https://superuser.com/a/43680 ):
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
Avantajları: hızlı düzeltme, sudo / root erişimine gerek yok, karmaşık program kalıplarının yapması kolay Dezavantaj: OS X için standart programlama yöntemi değil (piyasaya sürüldü)
launchd
OS X altına girmenin yolu
crontab -e
, sizi kaydederken kişisel crontab'ınız olacak bir dosyadaki terminal tabanlı bir metin editörüne yönlendirir.
LaunchControl launchd / launchctl için başka bir GUI'dir. Diğerleri tarafından belirtilen alternatifler günlük olarak bir senaryoyu mükemmel bir şekilde başlatabiliyor olsa da, LaunchControl ile karmaşık programları yapılandırabilirsiniz ("hafta içi her gün bir kez, hafta içi her saat 2 ile 20:00 arasında"). Ayrıca, işi gerçekten doğrulayan tek araç (AFAIK). Bir iş beklendiği gibi çalışmazsa, size neden olduğunu gösterecektir.
İstediğiniz kadar denemek için ücretsiz.
cron
google eğer yeterince öğretici bulmalısın .İstediğinize göre değişir: iCal komut dosyaları yalnızca oturum açtıysanız cron
çalıştırılır, komut dosyasını giriş yapmadan çalıştırır. Mac'in komut dosyası olması gereken zamanda açılmış olması durumunda, iCal'in bir komut dosyasını çalıştırıp çalıştırmadığını bilmiyorum. idam edildi. cron
bunu yapıyor.
Güncelleme: Mac OS X App Store'da bunu yapan bazı uygulamaları kontrol edebilirsiniz:
Lingon ayrıca, hangi işletim sistemini çalıştırdığınıza bağlı olarak da mevcut gibi görünüyor.
İşte plist XML oluşturmak için basit ve ücretsiz bir yardımcı program:
http://www.gieson.com/Library/projects/utilities/launcha/
Bu kullanım sayesinde bir program kurmanıza gerek kalmaz, sonuçları sadece Library / LaunchAgents klasörünüze kaydedin.
RunAtStart
yanlış (false) olarak ayarlanmadığından emin olun . Finder'ımın neden donma ve masaüstünün açılışta yüklenmesini durduracağını bulmak için bir saat harcadım. Devre dışı bırakmak RunAtStart
, sabit zamanlamaya engel olmaz.
Lingon'u her zaman bunun için kullanırım , ancak geliştirilmemiş gibi görünüyor. Crontooie'yi deneyebilirsin ama ben kişisel olarak hiç kullanmadım. Veya sadece terminaldeki crontab dosyasını düzenleyin.
BEDAVA denemek istiyorsanız, Görev Görene Kadar Şafak
sp@mactop ~ $ crontab -l
*/5 * * * * /usr/local/bin/cinco.sh
sp@mactop ~ $ cat /usr/local/bin/cinco.sh
#!/bin/sh
....cut....
sp@mactop ~ $
... ".... kes ...." için attığınız komut satırları her beş dakikada bir çalışacaktır.
30 yıllık ilerleme ve 'cron' hala en sevdiğim programcı.
-C
Bir takvim etkinliği ihtiyaçlarınızı karşılıyorsa, yerleşik Automator uygulaması ayrıca takvim etkinlikleri tarafından tetiklenen Takvim Alarmları oluşturmanıza da olanak sağlar. İstediğiniz şeyi yapmak için yerleşik UI tabanlı işlemlerden bazılarını kullanabilir veya bazı uygulamaları veya özel AppleScript, JavaScript veya kabuk komut dosyalarını çalıştırmasını sağlayabilirsiniz.