Masalahnya sebenarnya bukan dengan cron - ini dengan pekerjaan Anda.
Anda perlu membuat pekerjaan Anda berinteraksi dengan kunci beberapa deskripsi. Cara termudah untuk melakukan ini adalah mencoba membuat direktori dan jika berhasil melanjutkan, jika tidak keluar. Ketika pekerjaan Anda selesai dan keluar, ia harus menghapus direktori yang siap untuk dijalankan berikutnya. Berikut ini skrip untuk diilustrasikan.
#!/bin/bash
function cleanup {
echo "Cleanup"
rmdir /tmp/myjob.lck
}
mkdir /tmp/myjob.lck || exit 1
trap cleanup EXIT
echo 'Job Running'
sleep 60
exit 0
Jalankan ini di satu terminal kemudian sebelum 60 detik habis jalankan di terminal lain itu akan keluar dengan status 1. Setelah proses pertama keluar Anda dapat menjalankannya dari terminal kedua ...
EDIT:
Ketika saya baru saja belajar tentang kawanan domba, saya pikir saya akan memperbarui jawaban ini.
flock (1) mungkin lebih mudah digunakan. Dalam hal ini flock -n
akan tampak tepat misalnya
* * * * * /usr/bin/flock -n /tmp/myAppLock.lck /path/to/your/job
Akan menjalankan pekerjaan Anda setiap menit tetapi akan gagal jika kawanan tidak dapat memperoleh kunci pada file.