পুটি বা অন্য - পুটি থেকে বেরিয়ে আসার পরেও কমান্ড চালিয়ে যান [নকল]


13

আমার কয়েকটি কমান্ড রয়েছে যা চালানো দরকার। আমি আমার ইন্টারফেস থেকে বেরিয়ে আসার পরেও এই আদেশগুলি অবিচ্ছিন্নভাবে চালানো দরকার needs আমার যখন লিনাক্স জিইউআইতে অ্যাক্সেস থাকে তখন আমি এরকম কিছু সম্পাদন করি:

cd /home/testuser/Scripts*
xterm -hold -T "Background_Script1" -e  "service1-start.sh" &
sleep 10
xterm -hold -T "Background_Script2" -e "service2-start.sh" &

যে কোন সাহায্যের জন্য অনেক প্রশংসা করা হবে।



আপনি এই পরিষেবাগুলিকে ডেমন হিসাবে চালাচ্ছেন না তার কোনও কারণ আছে কি?
সেভেনসাইডিডি

কমান্ডগুলি কী পরিষেবাগুলি বোঝায় যা "চিরকালের জন্য" প্রায় 100% আপটাইমে চালানো উচিত, বা দীর্ঘমেয়াদে প্রসেসিং টাস্ক যা কিছু সময়ের পরে শেষ হবে বলে আশা করা হচ্ছে? সমস্ত উত্তর উভয় ক্ষেত্রেই "কাজ করবে" তবে যথাযথ সুপারিশটি আলাদা হবে।
পিটারিস

আপনি লিনাক্সের কোন নির্দিষ্ট বিতরণ ব্যবহার করছেন? আমি দেখতে পেয়েছি যে দৌড়াদৌড়িটি set -m;এটিকে এমন করে তোলে যাতে আমার স্ক্রিপ্টগুলি সেন্টোস এবং আরএইচইএল-এ লগ আউট করার পরে চলতে থাকবে।
আর্টঅফ ওয়ারফেয়ার

উত্তর:


33

চেষ্টা

নোহপ ব্যাকগ্রাউন্ড_স্ক্রিপ্ট এক্স &

নোহুপ নিশ্চিত করে যে কোনও টার্মিনাল বন্ধ হয়ে গেলে কোনও প্রক্রিয়া শেষ হবে না। & প্রতীক প্রক্রিয়াটিকে পটভূমিতে ঠেলে দেয়।

আশা করি এটি সহায়ক ছিল।


নোহুপ অবশ্যই কাজটি করে
পিটো

সাহায্য করার জন্য খুশি।
ইমন ট্র্যাভারগুলি

15
নোহুপের চেয়ে স্ক্রিনের একটি সুস্পষ্ট সুবিধা রয়েছে : নোহুপ আপনাকে চলমান কমান্ডে ফিরে যেতে দেয় না (যেমন পরের দিন সকালে তার স্টাডআউটটি পড়তে হবে, তারপরে এটি হত্যা করতে পছন্দ করবে ইত্যাদি)। স্ক্রিন আপনাকে ঠিক তা করতে দেয়।
আন্দ্রেয়াস এফ

1
নোহুপ একটি ফাইলে আউটপুট প্রেরণ করে যেখানে এটি প্রক্রিয়া করা যায়।
ব্রায়ান নোব্লাচ

যারা নতুন nohup, তাদের জন্য এটি মূলত "হ্যাঙ্গআপ নয়" - নোহাপের সাথে হ্যাঙ্গআপ ( HUP) সিগন্যাল উপেক্ষা করা হবে।
ড্যান 7119

20

আপনি যদি পরবর্তী তারিখে আউটপুটটি পড়তে চান তবে আপনি এটি ব্যবহার করতে পারেন screen:

screen -d -m my_command

এটি আপনাকে একটি বিচ্ছিন্ন টার্মিনাল দেয় যা আপনি পরে ( screen -r) এর সাথে স্টডআউট / স্টডার আউটপুট পড়তে সংযোগ করতে পারবেন ।


2
+1 টি। একটির জন্য, যদি আপনি আপনার টার্মিনালটি বন্ধ করেন (যেমন পুট্টি) এবং তারপরে আপনি এটি আবার খুলেন এবং স্ক্রিনে পুনরায় সংযুক্ত হন ( screen -r) তবে আপনার প্রোগ্রামটি তৈরির সমস্ত আউটপুটও থাকবে এবং আপনি অন্যথায় "মিস" হয়ে গেছেন। এছাড়াও, স্ক্রিন অনেক বিস্ময়কর কাজ করতে পারে, যেমন বিভক্ত স্ক্রিন ইত্যাদি! :)
আলবার্তো শান্তিনি

6

nohupকমান্ড উপলভ্য না থাকলে অন্য বিকল্পটি হ'ল অস্বীকার করা কমান্ডটি ব্যবহার করা ।

প্রথমে আপনি jobsটার্মিনালে চালিয়ে আপনার পটভূমি কাজগুলি দেখতে পারবেন । আপনি সেখান থেকে কাজের নম্বর পেতে পারেন।

এখন কেবল চালান disown %[job number]এবং প্রক্রিয়াটি বর্তমান টার্মিনাল থেকে বিচ্ছিন্ন হয়ে যাবে এবং লগ আউট করার পরে জীবিত থাকবে।

পার্শ্ব নোট: আপনি সঠিক প্রশ্ন জিজ্ঞাসা করছেন তা নিশ্চিত করুন। আপনি যদি আপনার নমুনায় ইঙ্গিত হিসাবে প্রকৃত পরিষেবাগুলি চালাচ্ছেন তবে আপনি নিজের পছন্দের ওএসে কীভাবে ডেমন তৈরি করবেন তা সন্ধান করতে পারেন। এটি পুনরায় বুট করার পরেও প্রক্রিয়াটি চলছে কিনা তা নিশ্চিত করা এবং এটি অন্যান্য পরিষেবার সাথে আরও সুসংগত করে তোলে to

আশাকরি এটা সাহায্য করবে.


3

যেহেতু screenউল্লেখ করা হয়েছে: এখানে অন্যান্য টার্মিনাল মাল্টিপ্লেক্সার রয়েছে। আমি tmuxখুব পছন্দ করি , উদাহরণস্বরূপ দেখুন এই অন্যান্য সুপারসারের প্রশ্ন, তুলনার জন্য স্ক্রীন বনাম স্ক্রিনটি


0

আপনিও চেষ্টা করতে পারেন: setsid Setsid ব্যাকগ্রাউন্ড প্রোগ্রামগুলিতেও কাজ করে এবং টার্মিনাল / ssh সেশনটি সংযোগ বিচ্ছিন্ন হওয়ার পরে এগুলি চালিয়ে যেতে দেয় allows

এটি এর মতো ব্যবহার করুন:

setsid program-to-background

মানচিত্র: http://man7.org/linux/man-pages/man2/setsid.2.html

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.