আমার একটি জাভা এক্সিকিউটেবল প্রোগ্রাম রয়েছে যা আমি java -jar abc.jarটার্মিনালে টাইপ করে চালাতে পারি । আমি কীভাবে এটি পরিষেবা হিসাবে চালাতে পারি? আমি টাইপ করে এটি পরিষেবা হিসাবে চালাতে চাই service abc start।
আমার একটি জাভা এক্সিকিউটেবল প্রোগ্রাম রয়েছে যা আমি java -jar abc.jarটার্মিনালে টাইপ করে চালাতে পারি । আমি কীভাবে এটি পরিষেবা হিসাবে চালাতে পারি? আমি টাইপ করে এটি পরিষেবা হিসাবে চালাতে চাই service abc start।
উত্তর:
আপনি 14.04 এ নিশ্চিত হন। উবুন্টু 16.04 (এবং উপরে) সিস্টেমড ব্যবহার করে, আপস্টার্ট নয় not
একটি আপস্টার্ট স্ক্রিপ্ট হ'ল একটি স্ক্রিপ্ট ফাইল যা /etc/init/শেষ হয় এবং শেষ হয় .conf।
এটিতে 2 টি বিভাগ প্রয়োজন: একটি কখন কখন শুরু করতে হয় তা নির্দেশ করতে এবং অন্যটি কার্যকর করতে কমান্ড সহ।
আপনার নমুনা দিয়ে শুরু করার সহজতম স্ক্রিপ্টটি হ'ল:
# myprogram.conf
start on filesystem
exec /usr/bin/java -jar /path_to/program
এর অধীনে মূল হিসাবে নির্মিত /etc/init/myprogram.conf।
যদি আপনার স্ক্রিপ্টে একাধিক কমান্ড লাইনের প্রয়োজন scriptহয় তবে execলাইনের পরিবর্তে বিভাগটি ব্যবহার করুন :
# myprogram.conf
start on filesystem
script
/usr/bin/java -jar /path_to/program
echo "Another command"
end script
আপনার পরিষেবার জন্য বাশ সম্পূর্ণকরণ সক্ষম করতে, /etc/init.dফোল্ডারে একটি সিমিলিংক যুক্ত করুন :
sudo ln -s /etc/init/myprogram.conf /etc/init.d/myprogram
তারপরে শুরু করে দেখুন এবং এটি বন্ধ করুন:
sudo service myprogram start
আপস্টার্ট কুকবুক অনুসারে , আপনি কার্যকর করতে হবে pre-start/ post-startএবং pre-stop/ post-stopআদেশগুলি তৈরি করতে পারেন ।
অতিরিক্তভাবে, আমি পড়েছি আপনি কোনও প্রক্রিয়া চলছে কিনা তা পরীক্ষা করে দেখতে চান। এই প্রশ্নটি পরীক্ষা করুন এবং সম্ভবত pre-startবিভাগটি ব্যবহার করুন ।
sudo chmod +x /etc/init.d/myprogram। সতর্কতা: আপনার উত্তর পদ্ধতি উবুন্টু 16.04 এ কাজ করে না!
আপনার একটি আপস্টার্ট তৈরি করতে হবে। http://upstart.ubuntu.com/getting-started.html
ভাল ওল 'সিএসভি থ্রি স্ক্রিপ্টগুলির তুলনায় আপস্টার্ট হ'ল (আইএমএইচও) একটি দুর্যোগ। আপস্টার্টটি যোগ করা কাজের সামান্য উল্টোদিকে আরও বেশি প্রচেষ্টা। এই কথাটি বলে আমি সন্দেহ করি যে সেখানে কয়েক জন আপসার্ট ডিফেন্ডার থাকবে যা আমাকে স্পষ্ট করে বলে আমার জন্য কাজ করবে ---)