এসএসএইচ দিয়ে স্ক্রিপ্টটি কীভাবে চালানো যায় যা আমি সংযোগ বন্ধ করে দিলে শেষ হয় না?


18

আমার স্ক্রিপ্ট চালানো দরকার, এটি কার্যকর করতে দীর্ঘ সময় লাগে, বা আমি এটি চিরকালের জন্য চালানো চাই। আমি আমার মেশিনে কেবল এসএসএইচ করতে পারি না, কারণ আমি সংযোগ বিচ্ছিন্ন করার পরে এটি চলমান বন্ধ করে দেয়।

স্ক্রিপ্ট চালানোর কোনও উপায় আছে যা শেলটির উপর নির্ভর করে না যে এটি শুরু হয়েছিল?

আমি উবুন্টু 9.04 ব্যবহার করছি।

উত্তর:


24

আপনি এর আগে nohup কমান্ড দিয়ে কমান্ডটি চালাতে পারেন। আপনি এটি 'স্ক্রিনে' চালনাও করতে পারবেন যা আপনাকে টার্মিনালটি পুনরায় সংযুক্ত করতে দেয়।

উদাহরণ স্বরূপ:

ssh mySever 'nohup bash myscript.sh'

অথবা কেবল ssh করুন এবং nohup কমান্ডটি চালান। আপনার সংযোগ বিচ্ছিন্ন হওয়ার পরেও এটি চলতে থাকবে। এটি কারণ হ'ল নোহুপ SIGHUP সিঙ্গলকে (হ্যাঙ্গআপ) বাধা দেবে।

স্ক্রিনটি আরও কিছুটা জড়িত, তবে 20 মিনিটের জন্য এটি আপনাকে বেসিকগুলি শিখতে নিতে পারে, এটি সেখানকার সবচেয়ে দরকারী সরঞ্জামগুলির মধ্যে একটি। এখানে একটি টিউটোরিয়াল


কাইল দ্বারা স্নিপড ...> হাসি <
ইভান অ্যান্ডারসন

ইভান কে স্নেপ করে এমন কাউকে +1 করুন। শুভ 10 কে :)
স্কুইলম্যান

1
টিউটোরিয়ালটির লিঙ্কটি নষ্ট হয়েছে :(
ইডো রান

7

আমি সবসময় শুধু nohup ব্যবহার। যদি আমি আউটপুট সম্পর্কে চিন্তা করি তবে আমি এটিকে একটি লগ ফাইলে পুনর্নির্দেশ করি, অন্যথায় আমি এটি / dev / নালকে প্রেরণ করি।

উদাহরণ:

nohup scp file.tar.gz root@someserver:/var/tmp > /dev/null 2>&1 &

এটি পটভূমিতে রাখে, আউটপুটটি / dev / নাল হয়ে যায় এবং আপনি লগ আউট করলে এটি HUP সিগন্যালের প্রতিরোধক। আপনি কিছু নির্দিষ্ট শাঁস (বাশের মতো) দিয়েও কাজটি "অস্বীকার" করতে পারেন যাতে এটি আপনার সেশনের সাথে সংযুক্ত না থাকে।

disown %1

1
অস্বীকার করার জন্য +1 - আপনি যখন নোহুপ ব্যবহার করে চালাতে ভুলে যান তখন খুব দরকারী
চিহ্নিত করুন

5

স্ক্রিন ইনস্টল করতে: apt-get install screen

তারপরে সহজভাবে ব্যবহার করে লঞ্চ করুন: screen

এবং man screenকী বাইন্ডিং পেতে।


+1 টি! পর্দা কি জিনিস!
জাভিয়ার

আমি স্ক্রিন ব্যবহার করতাম, তবে বিভিন্ন কারণে tmux এ স্যুইচ করেছি। : গুগল "tmux পর্দা বনাম" এবং আপনি ভালো কিছু লিঙ্ক পাবেন superuser.com/questions/236158/tmux-vs-screen
m0j0

2

আপনি কোনও সার্ভারে লগ ইন করার সময়, আপনি নিম্নলিখিত কমান্ড দ্বারা বিযুক্ত মোডে একটি স্ক্রিপ্ট চালাতে পারেন:

nohup script >script.out 2>script.err &

পরে আপনি যখন আবার লগ ইন করেন, আপনি কোনও আউটপুটের জন্য স্ক্রিপ্ট.আউট এবং কোনও ত্রুটি বার্তাগুলির জন্য স্ক্রিপ্ট.আরআর চেক করতে পারেন। আপনি যদি একই ফাইলে আউটপুট এবং ত্রুটি বার্তাগুলি চান তবে করুন:

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