উবুন্টু আপস্টার্টে কীভাবে একটি পরিষেবা তৈরি করবেন


21

আমার একটি জাভা এক্সিকিউটেবল প্রোগ্রাম রয়েছে যা আমি java -jar abc.jarটার্মিনালে টাইপ করে চালাতে পারি । আমি কীভাবে এটি পরিষেবা হিসাবে চালাতে পারি? আমি টাইপ করে এটি পরিষেবা হিসাবে চালাতে চাই service abc start


আরও একটি সম্পূর্ণ উত্তর এখানে: unix.stackexchange.com/questions/1924/… মূলত, উবুন্টুতে আপনি /etc/init.d এর জন্য একটি স্ক্রিপ্ট তৈরি করতে পারেন যা আপনার পরিষেবা শুরু / থামাতে / পুনঃসূচনা করতে পারে।
মিঃ এড

উত্তর:


41

আপনি 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বিভাগটি ব্যবহার করুন ।


1
হতে পারে আপনার এটিকে কার্যকর করার প্রয়োজন sudo chmod +x /etc/init.d/myprogram। সতর্কতা: আপনার উত্তর পদ্ধতি উবুন্টু 16.04 এ কাজ করে না!
জুলিওসার

2
@ জুলিওসার 16.04 সিস্টেমড ব্যবহার করে, আপস্টার্ট নয়।
রায়েল গুগেলিন চুনহা

start onপ্রয়োজনীয় স্তব নয়। আপনি যেমন এখানে পড়তে পারেন : এই জাতীয় কাজটি কেবলমাত্র প্রশাসক দ্বারা নিয়ন্ত্রিত হতে পারে
এসবিবি

@ সুব ইয়াপ, তবে তারপরে কাজটি স্বয়ংক্রিয়ভাবে শুরু হবে না এবং এটি স্পষ্ট ছিল যে প্রশ্ন লেখক কোনও পরিষেবার মতো কিছু করতে চান, যেমন স্বয়ংক্রিয়ভাবে শুরু starting
রায়েল গুগেলিন চুনহা

হ্যাঁ। আমি জানি. আপনার উত্তরটি সম্পূর্ণ করতে একটি মন্তব্য যুক্ত করেছেন।
এসবিবি

0

আপনার একটি আপস্টার্ট তৈরি করতে হবে। http://upstart.ubuntu.com/getting-started.html

ভাল ওল 'সিএসভি থ্রি স্ক্রিপ্টগুলির তুলনায় আপস্টার্ট হ'ল (আইএমএইচও) একটি দুর্যোগ। আপস্টার্টটি যোগ করা কাজের সামান্য উল্টোদিকে আরও বেশি প্রচেষ্টা। এই কথাটি বলে আমি সন্দেহ করি যে সেখানে কয়েক জন আপসার্ট ডিফেন্ডার থাকবে যা আমাকে স্পষ্ট করে বলে আমার জন্য কাজ করবে ---)


1
এটি /etc/init/yourservice.conf এ কেবল একটি ফাইল যা কখন শুরু করতে হবে তা নির্দেশ করে এবং এক্সিকিউট কমান্ডের সাথে অন্যটি। ফেডোরা আপস্টার্টও ব্যবহার করে। অতিরিক্তভাবে, এমনকি ডেবিয়ানও তার প্রারম্ভিক স্কিমাটি সিস্টেমডিতে পরিবর্তন করছে যা ভবিষ্যতে উবুন্টু স্কিমা হবে।
রায়েল গুগেলিন চুনহা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.