ATD'nin geçmiş işleri çalıştırmasını nasıl önleyebilirim?


9

Daemon harika bir araçtır! Ancak, bir iş sabah 8:00 için planlanmışsa ve makine o sırada kapalıysa, makineyi her başlattığında konumundaki işi çalıştırır. Yapmak istediğim şey, eğer zaman geçmişse işin çalışmasını durdurmak. Adam sayfalarını aradım ve çevrimiçi, ama ya bir cevap yok ya da bir tane bulamadım. Arch kullanıyorum, ancak bildiğim kadarıyla dağıtımlar arasında çok benzer.

Herhangi bir yardım çok takdir!

Yanıtlar:


7

Bir iş ne zaman geçmiş bir iş haline gelir? Sistemi 7:59:50 saatinde açar ve atarka plan programı başlarsa 8:00:01, iş yürütülmeli mi? Daemon 7:59:59'da başlar, ancak tüm dosyalarını okumak iki saniye alırsa ne olur?

Sen karar ver! İşinize bir zaman kontrolü ile başlayın ve zaman geçtiyse iptal edin.

export execute_by_date=$(date +%s 'tomorrow 8:01')
at tomorrow 8:00
[ "$(date +%s)" -le "$execute_by_date" ] || exit
do_stuff
␄

2

Kapatma veya yeniden başlatma sırasında tüm işlenen işlerini iptal eden bir init-script yazabilirsiniz.

Arch-Linux hakkında emin değilim - /etc/sysconfig/atbenzer bir şey var mı? Belki de ters çevirmeniz gereken bir yapılandırma anahtarıdır ...


Bence bu en iyi çözüm, atbaşlamadan önce önyükleme sırasında kuyruğu yıkayın at.
bahamat

Bu tam olarak beklediğim / mümkün olması bekleniyor! Maalesef Arch'de hiç /etc/sysconfig/dizin yok. Ve man sayfalarında listelenen dosyaların hiçbiri yapılandırma dosyası değil.
Elmer

@Elmer Biraz googledim ve linux hakkında okudum. '/etc/rc.d/atd' orada at-daemon için init-script gibi görünüyor. Bazı yapılandırma dosyalarını ayrıştırdığını görebiliyorsanız bir göz atın. Orada şanslı değilseniz, kendi init-script'iniz için gitmek zorundasınız (örneğin, adlandırın atclearve daha önce çalıştırın atd).
Nils

2

Benim cronoyum daemon için.

Günün belirli saatlerinde çalıştırmanız gerekiyor, ancak her gün aynı saatte çalıştırılmaması gerekiyorsa, belirli bir yürütme süresine sahip günde bir giriş aralığına sahip bir crontab oluşturacağım:

Alınan bazı örnekler crontab(5):

# run five minutes after midnight, every day
5 0 * * *       command
# run at 2:15pm on the first of every month
15 14 1 * *     command
# run at 10 pm on weekdays
0 22 * * 1-5    command

0

Ne istiyorsun cron cini. Tam olarak ne istersen yapar.

Cron daemon için favori arama motorunuzu besleyin ve bir sürü kılavuz ve talimatınız var. man cronve man crontabayrıca yararlıdır.


Yardımın için teşekkürler, ama cron sorunum için çalışmıyor. Günün belirli saatlerinde çalıştırılan bir komut dosyasına ihtiyacım var, ama her gün aynı saatte değil.
Elmer
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.