Her seferinde bir cronjob programlayın


2

Her 48 saatte bir çalışan bir cronjonum var. Fakat ideal olarak istediğim, durduğu anda koşmaya başlaması gerektiği. Bu yapılabilir mi? Bir python komutundan oluşan bir sh betiğidir. Linux Mint 13 kullanıyorum.

teşekkür ederim


1
Bana kulağa bir kabuk betiği (ya da daha iyisi, Python betiğinin kendisi) cronu kontrol etmesi gerektiğini söylüyor. Hangi komutu kullanıyorsun? Lütfen buraya kabuk betiğini ve Python komutunu göndermeyi düşünün.
slhck

Yanıtlar:


1

Yapabileceğiniz bir şey python komutunu sonsuz bir döngüde çalıştırmak ve ardından cron kullanarak betiği çalıştırmaktır. Bu şekilde komut dosyası her bitirdiğinde tekrar çalıştırılır:

#!/bin/bash
while true; do  ## Enter infinite loop
   sleep 5;   ## Wait for 5 seconds
   python -c 'print("hello world")'  ## Run your python command
done 

Bu betiği örneğin olarak kaydedip ~/run_python.shçalıştırılabilir hale chmod +x ~/run_python.shgetirirseniz ( ), @rebootöneki kullanarak sistem önyüklemesinde bir kez çalışacak şekilde ayarlayabilirsiniz . Bu satırı crontab'ınıza ekleyin:

@reboot ~/run_python.sh

Böylece BASH betiği sistem önyüklemesinde başlayacak ve 5 saniye bekleyecek, python komutunu çalıştıracak ve süresiz olarak devam edecektir.

Daha iyi veya en azından daha fazla * nixy, bunu yapmanın bir yolu komut dosyası eklemek olacaktır /etc/init.d.


Bunu Amazon EC2'de çalıştıracağım, böylece yeniden başlatmaya gerek kalmayacak.
Rishi,
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.