Selain jawaban lain, terutama tautan yang diposting oleh @soulcake: Jika Anda menjadwalkan perintah yang berjalan lama dengan interval yang terlalu pendek, cron akan dengan senang hati mengeksekusi yang kedua sebelum yang pertama selesai (kecuali jika ada semacam mutex yang diterapkan dalam perintah) .
Itu sering memperlambat perintah asli lebih jauh, mengarah ke contoh lain dijalankan sebelum yang sebelumnya selesai, dll. Atau mungkin tidak diinginkan karena alasan lain.
Cara umum untuk mencegah adalah mengkondisikan menjalankan perintah dengan penjaga yang memastikan bahwa perintah sebelumnya tidak berjalan. Sebagai contoh:
10 * * * * pgrep my_slow_command >/dev/null || /usr/local/bin/my_slow_command
Pastikan pgrep cocok dengan nama perintah ketika dijalankan, misal skrip python memiliki python sebagai nama yang dapat dieksekusi, yang mungkin tidak cukup spesifik dan Anda harus mencocokkan dengan nama skrip python juga.
10 * * * * pgrep -f my_script.py || /usr/local/bin/my_script.py
(pgrep tanpa opsi '-f' cocok dengan nama skrip bash,)
Jika Anda tidak dapat menggunakan pgrep karena beberapa alasan:
10 * * * * ps ax | grep [m]y_command || /usr/local/bin/my_command
Tanda kurung digunakan untuk menghindari pencocokan perintah grep itu sendiri.