সমস্যাটি প্রকৃতপক্ষে ক্রোন নয় - এটি আপনার কাজের সাথে।
আপনার কাজের কিছু বিবরণের একটি লকের সাথে ইন্টারঅ্যাক্ট করতে হবে। এটি করার সহজতম উপায় হ'ল এটি একটি ডিরেক্টরি তৈরি করার চেষ্টা করা এবং যদি সফলভাবে অব্যাহত থাকে তবে প্রস্থান না করে। আপনার কাজ শেষ হয়ে গেলে এবং প্রস্থান করার সময় পরবর্তী রানের জন্য প্রস্তুত ডিরেক্টরিটি সরিয়ে ফেলা উচিত। চিত্রিত করার জন্য এখানে একটি স্ক্রিপ্ট রয়েছে।
#!/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
এটি একটি টার্মিনালে চালান তারপরে 60০ সেকেন্ড শেষ হওয়ার আগে এটি অন্য টার্মিনালে চালানোর পরে এটি 1 স্ট্যাটাসের সাথে প্রস্থান করবে 1 প্রথম প্রক্রিয়াটি বের হয়ে গেলে আপনি এটি দ্বিতীয় টার্মিনাল থেকে চালাতে পারবেন ...
সম্পাদনা করুন:
আমি যেমন ঝাঁক সম্পর্কে জানতে পেরেছিলাম আমি ভেবেছিলাম এই উত্তরটি আপডেট করব।
ফ্লক (1) ব্যবহার করা সহজ হতে পারে। এই ক্ষেত্রে flock -n
উপযুক্ত মনে হবে যেমন
* * * * * /usr/bin/flock -n /tmp/myAppLock.lck /path/to/your/job
প্রতি মিনিটে আপনার কাজ চালাবে তবে পশুপাল যদি ফাইলটিতে কোনও লক না পান তবে ব্যর্থ হবে।