Diğer yanıtlara ek olarak, özellikle @soulcake tarafından gönderilen bağlantı: Çok kısa bir aralıkla uzun süre çalışan bir komut planlıyorsanız, cron birincisi tamamlanmadan önce ikinciyi mutlu bir şekilde yürütür (komutta bir tür muteks uygulanmadığı sürece) .
Bu genellikle orijinal komutu daha da yavaşlatır ve önceki komutlar tamamlanmadan önce başka bir örneğin çalıştırılmasına neden olur. Ya da başka nedenlerle istenmeyen olabilir.
Önlemenin genel yolu, komutun önceki bir komutun çalışmadığından emin olan bir korumayla çalıştırılmasını sağlamaktır. Örneğin:
10 * * * * pgrep my_slow_command >/dev/null || /usr/local/bin/my_slow_command
Pgrep komutunun çalıştığında komutun adıyla eşleştiğinden emin olun, örneğin python komut dosyalarında yürütülebilir dosya adı olarak python vardır, bu muhtemelen yeterince spesifik değildir ve python komut dosyasının adıyla da eşleşmeniz gerekir.
10 * * * * pgrep -f my_script.py || /usr/local/bin/my_script.py
('-f' seçeneği olmayan pgrep bash komut dosyası adlarıyla eşleşir)
Pgrep'i herhangi bir nedenle kullanamıyorsanız:
10 * * * * ps ax | grep [m]y_command || /usr/local/bin/my_command
Köşeli ayraçlar grep komutunun kendisiyle eşleşmesini önlemek için kullanılır.