একটি আপস্টার্ট স্ক্রিপ্ট করতে চান; সাহায্য এবং পরামর্শ প্রয়োজন


13

এটিএম, আমাকে এলোমেলোভাবে একটি কাজ শুরু করা এবং বন্ধ করতে হবে (মনে মনে আরও ভাল শব্দের অভাবে) একটি কাজ। আমি টাইপ করে এটি শুরু করি java -jar foo.jarএবং এটির পিডটি খুঁজে বের করতে এবং এটি মেরে ফেলার জন্য। এটি হত্যার ফলে কোনও তথ্য ক্ষতি বা দুর্নীতি বা কোনও কিছুই ঘটবে না, কেবল এফআইআই। এই দুটি পদক্ষেপই করা বিরক্তিকর কারণ প্রথম কমান্ডটি একটি নির্দিষ্ট ডিরেক্টরি থেকে কার্যকর করতে হয়, অর্থাৎ /usr/share/jetty(যে কোনও জায়গা থেকে এই হত্যাটি কার্যকর করা যেতে পারে)।

তাই আমি কিছু লাইনে কিছু ভাবছিলাম

service foo startএবং service foo stopপরিষেবাগুলি শুরু এবং বন্ধ করতে। এটি কি সম্ভব এবং আরও গুরুত্বপূর্ণভাবে সঠিক? অন্য কোন সমাধান আছে কি?

ধন্যবাদ।

উত্তর:


13

হ্যাঁ আপস্টার্ট এটির জন্য বেশ ভাল বিকল্প। কেবল একটি নতুন ফাইল তৈরি করুন:

sudoedit /etc/init/my-jetty-jar.conf

আপনি নিজের পছন্দ মতো ফাইলের নাম পরিবর্তন করতে পারেন তবে এটি এতে আটকে রাখতে পারেন:

description     "Run my jetty jar"

# no start option as you might not want it to auto-start
# This might not be supported - you might need a: start on runlevel [3]
stop on runlevel [!2345]

# if you want it to automatically restart if it crashes, leave the next line in
respawn

script
    cd /usr/share/jetty
    su -c "/usb/bin/java -jar /path/to/foo.jar" nobody
end script

সে সম্পর্কে কয়েকটি নোট, আমি suসুরক্ষার জন্য কারও কাছে ইঙ্গিত করছি । আপনার suঅন্য অ্যাকাউন্টে এটি প্রয়োজন হতে পারে তবে সম্ভবত এটি প্রস্তাবিত নয় যে এটি চলবে root


পরিবর্তনগুলি কার্যকর হওয়ার জন্য কি পুনরায় চালু করা দরকার? update-rc.dকাজ করেনি /
TheTuxRacer

আপনার update-rc.dআপস্টার্ট কাজের দরকার নেই ।
অলি

আপস্টার্ট / ইত্যাদি / ইনোটাইটি ইনওটিফাই ব্যবহার করে দেখায়, তাই এটি নীচের ফাইলগুলিতে সমস্ত সম্পাদনা সম্পর্কে সাধারণত জানতে পারে। 'আমার জেটি-জার শুরু করুন' ছাড়া আর কিছু করার দরকার নেই। ওহ, এবং অলি, আপনি অবশ্যই কোনও কাজ শুরু করতে পারেন নি। নোট করুন যে রানলেভলে থামার জন্য [! 2345] ভবিষ্যতে জিনিসগুলি থামানোর খারাপ উপায় হিসাবে পতাকাঙ্কিত করা যেতে পারে (যেহেতু এটি কোনও গ্যারান্টি দেয় না যে তারা ফাইল সিস্টেম আনমাউন্ট করার আগে থামবে)
স্প্যাম্যাপস

দুর্ভাগ্যক্রমে, আপনার সমাধান জেটি 8 এর জন্য আর (আর) কাজ করে না বলে মনে হচ্ছে স্টার্ট.জারটি অন্য প্রক্রিয়া তৈরি করেছে, যা আপনার পদ্ধতির সাথে মারা যাবে না। এই সমস্যাটি সমাধান করার জন্য আমি আরও একটি প্রশ্ন তৈরি করেছি: স্ট্যাকওভারফ্লো.com/
সেবি

4
@ সেবি আপনার কেবল expect forkসেখানে প্রবেশের প্রয়োজন হতে পারে ( scriptশুরু করার আগে )।
অলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.