আমি কোনও প্রক্রিয়া পর্যবেক্ষণ করার উপায় খুঁজছি এবং যদি প্রক্রিয়াটি যে কোনও কারণে মারা যায় তবে এক্সিকিউটেবলকে পুনরায় চালু করতে হবে। লিনাক্সের কি কোনও অন্তর্নির্মিত সরঞ্জাম রয়েছে যা এটি করতে পারে?
আমি কোনও প্রক্রিয়া পর্যবেক্ষণ করার উপায় খুঁজছি এবং যদি প্রক্রিয়াটি যে কোনও কারণে মারা যায় তবে এক্সিকিউটেবলকে পুনরায় চালু করতে হবে। লিনাক্সের কি কোনও অন্তর্নির্মিত সরঞ্জাম রয়েছে যা এটি করতে পারে?
উত্তর:
যদি এটি আরআইডি থেকে চালু হয় তবে আপনি এটিকে আরআইপি দ্বারা পুনঃস্থাপন করতে পারেন। আপনি যে প্রক্রিয়াটিতে প্রক্রিয়াটি চান তা চালানোর জন্য প্রক্রিয়াটির জন্য 'রেসন'-এ অ্যাকশন সেট করুন।
আমি এর আগেও একই রকম প্রশ্নের উত্তর দিয়েছি ।
আপনার ক্ষেত্রে:
#!/bin/bash
while ! <<command>>
do
sleep 1
echo "Restarting program..."
done
<<command>>
আপনি যে আদেশটি কার্যকর করতে চান তা দিয়ে প্রতিস্থাপন করুন । লুপটি ভাঙতে প্রস্থানটি কোডের শূন্যের সাথে শেষ করতে হবে। অন্যথায়, এটি স্ক্রিপ্ট দ্বারা পুনরায় চালু করা হয়।
আপনি কেবল এটি মারা গেলে পুনরায় চালু করতে চান? এর সাথে সমস্যা হ'ল এটি হিমশীতল এমন পরিস্থিতি পরিচালনা করে না। সুতরাং কেবল প্রক্রিয়াটি পরীক্ষা করতে সর্বদা সহায়তা করবে না। সুতরাং এটি যদি ওয়েব সার্ভারের মতো কিছু হয় তবে আপনি ব্যবহারকারীর দৃষ্টিকোণ থেকে এটির স্ক্রিপ্ট পরীক্ষা করতে চান।
আপনি যদি নাগিও পর্যবেক্ষণ সেট আপ করেন তবে আপনি ইভেন্ট হ্যান্ডলারগুলি ব্যবহার করতে পারেন । এগুলি কেবলমাত্র আপনার লিখিত স্ক্রিপ্ট যা সার্ভিসটি ডাউন হয়ে গেলে চলবে, সুতরাং আপনার যদি ওয়েব সাইটটি নিচে থাকে তবে অ্যাপাচের মতো কিছু পুনরায় চালু করতে পারে।
ডিস্ট্রোর উপর নির্ভর করে, তবে আমরা এই কাজের জন্য সফলভাবে "মনিট" ব্যবহার করেছি। এটা বেশ সহজ। আপনি নিজের চেক লিখতে পারেন, প্রসেস পিআইডি ইত্যাদি পর্যবেক্ষণ করতে পারেন
উদাহরণস্বরূপ monitrc ফাইল:
check process sshd with pidfile /var/run/sshd.pid
start program "/etc/init.d/ssh start"
stop program "/etc/init.d/ssh stop"
if failed port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout
সংক্ষিপ্ত উত্তর : না আপনার নিজের এটি করতে হবে না।
দীর্ঘ উত্তর : এটি শুরু করার জন্য আপনার পিতামাতার প্রক্রিয়া দরকার হবে এবং তারপরে এটি বেঁচে আছে কিনা তা পরীক্ষা করে দেখুন এবং প্রয়োজনে এটি পুনরায় চালু করুন।
আপনি daemontools
এটি পরিচালনা করার মতো কিছু ব্যবহার করতে পারেন ।