আমি একটি daemonizer করে একটি মধ্যে একটি অবাধ জেনেরিক স্ক্রিপ্ট অথবা কমান্ড চালু করতে পারেন চাই ডেমন ।
দুটি সাধারণ ক্ষেত্রে আমি মোকাবেলা করতে চাই:
আমার একটি স্ক্রিপ্ট রয়েছে যা চিরকালের জন্য চালানো উচিত। যদি এটি কখনও মারা যায় (বা পুনরায় চালু হয়) তবে এটি পুনরায় চালু করুন। একবারে দু'টি অনুলিপি চলতে দেবেন না (কোনও অনুলিপি ইতিমধ্যে চলছে কিনা তা সনাক্ত করুন এবং সে ক্ষেত্রে এটি আরম্ভ করবেন না)।
আমার কাছে একটি সাধারণ স্ক্রিপ্ট বা কমান্ড লাইন কমান্ড রয়েছে যা আমি বারবার চালিয়ে যেতে চাই চিরকাল (রানের মধ্যে একটি ছোট বিরতি দিয়ে)। আবার, স্ক্রিপ্টের দুটি অনুলিপি একবারে একবারে চলতে দেবেন না।
অবশ্যই 2 ক্ষেত্রে স্ক্রিপ্টের আশেপাশে "যখন (সত্য)" লুপ লিখতে হবে এবং তারপরে কেস 1 এর জন্য একটি সমাধান প্রয়োগ করা হবে তবে আরও সাধারণ সমাধান কেবল ক্ষেত্রে 2 কে সমাধান করবে যেহেতু এটি স্ক্রিপ্ট 1 এর ক্ষেত্রে প্রযোজ্য as ভাল (আপনি শুধু একটি সংক্ষিপ্ত অথবা কোন বিরতি করতে পারেন যদি স্ক্রিপ্ট কি কখনো (অবশ্যই মরতে উদ্দেশ্যে না হয় যদি স্ক্রিপ্ট সত্যিই নেই তারপর মারা যায় না বিরতি নেই আসলে ব্যাপার))।
দ্রষ্টব্য যে সমাধানটি অন্তর্ভুক্ত করা উচিত নয়, বলুন, বিদ্যমান স্ক্রিপ্টগুলিতে ফাইল-লকিং কোড বা পিআইডি রেকর্ডিং যুক্ত করুন।
আরও সুনির্দিষ্টভাবে, আমি একটি প্রোগ্রাম "ডিমনাইজ" করতে চাই যা আমি পছন্দ করতে পারি
% daemonize myscript arg1 arg2
বা, উদাহরণস্বরূপ,
% daemonize 'echo `date` >> /tmp/times.txt'
যা টাইমস.টি.এস.টি. তে সংযুক্ত তারিখগুলির ক্রমবর্ধমান তালিকা রাখবে। (মনে রাখবেন যে ডিমনাইজ করার আর্গুমেন্টগুলি যদি স্ক্রিপ্ট হয় যা উপরের 1 এর মতো চিরকালের জন্য চালিত হয়, তবে ডেমোনাইজটি সঠিক কাজটি করবে, যখন প্রয়োজন হবে তখন এটি পুনরায় আরম্ভ করবে)) আমি তখন আমার লগিনে উপরের মতো একটি আদেশ দিতে পারি could এবং / বা এটি ক্রোন ঘন্টা বা মিনিটে (অপ্রত্যাশিতভাবে মারা যাবার বিষয়ে আমি কতটা উদ্বিগ্ন ছিল তার উপর নির্ভরশীল)।
এনবি: ডেমোনাইজ স্ক্রিপ্টটি কমান্ড স্ট্রিংটি ডেমোনাইজ করার কথা মনে রাখতে হবে যাতে একই কমান্ডের স্ট্রিংটি আবার ডিমনাইজড করা হয় তবে এটি দ্বিতীয় অনুলিপি চালু করে না।
এছাড়াও, সমাধানটি ওএস এক্স এবং লিনাক্স উভয় ক্ষেত্রেই আদর্শভাবে কাজ করা উচিত তবে এক বা অন্যের জন্য সমাধানগুলি স্বাগত।
সম্পাদনা: আপনি যদি এটির সাথে যোগাযোগ করতে চান তবে এটি ঠিক আছে sudo daemonize myscript myargs
।
(আমি যদি এই সমস্ত ভুলের কথা ভাবছি বা দ্রুত এবং নোংরা আংশিক সমাধান রয়েছে, আমি এটি শুনতেও পছন্দ করব))
পিএস: যদি এটি দরকারী হয় তবে এখানে অজগর সম্পর্কিত একটি অনুরূপ প্রশ্ন রয়েছে।
এবং অনুরূপ প্রশ্নের এই উত্তরটিতে একটি স্বেচ্ছাসেবীর লিপির দ্রুত এবং মলিন রাক্ষসীকরণের জন্য দরকারী উত্সাহ বলে মনে হয়: