সংযোগ বিচ্ছিন্ন হওয়ার পরে এসএসএইচ সেশনগুলি চালিয়ে যান


208

আমার মাঝে মাঝে দীর্ঘ চলমান প্রক্রিয়া থাকে যা আমি ঘরে যাওয়ার আগে শুরু করতে চাই, তাই আমি প্রক্রিয়াটি শুরু করার জন্য সার্ভারে একটি এসএসএইচ সেশন তৈরি করি, তবে তার পরে আমি আমার ল্যাপটপটি বন্ধ করে বাড়িতে যেতে চাই এবং পরে, রাতের খাবারের পরে, আমি চাই কাজ ছেড়ে যাওয়ার আগে আমি যে প্রক্রিয়াটি শুরু করেছিলাম তা পরীক্ষা করে দেখুন। আমি কীভাবে এসএসএইচ দিয়ে এটি করতে পারি? আমার বোধগম্যতা হল আপনি যদি আপনার এসএসএইচ সংযোগটি ভঙ্গ করেন তবে আপনি সার্ভারে আপনার লগইন সেশনটিও ভেঙে ফেলবেন, সুতরাং দীর্ঘকাল চলমান প্রক্রিয়াটি মেরে ফেলবেন।

উত্তর:


205

nohupআপনার প্রক্রিয়াটিকে হ্যাঙ্গআপ সংকেত উপেক্ষা করার জন্য ব্যবহার করুন :

$ nohup long-running-process &
$ exit

20
এই হল. স্ক্রিন বা টিএমক্স ইনস্টল করার দরকার নেই। এটি আসলে এটি করার ভাল পুরানো উপায়। অবশ্যই 'স্ক্রিন' বা 'টিএমউक्स' উভয়ই বিস্ময়কর অ্যাপ্লিকেশন এবং প্রয়োজনে ব্যবহার করা উচিত, তবে আপনি যে পটভূমিতে লগ আউট করতে পারবেন এমন প্রক্রিয়া চালানোর মতো সহজ, উপরের দিকে যান।

2
নোহুপ কি অস্বীকারের মতো?
সিজে্যাক

28
তাদের একই উদ্দেশ্য রয়েছে, তবে তারা বিভিন্ন দিক থেকে পৃথক। nohupSIGHUP কে বাধা দেয় যাতে এটি চালিত শেলটি যখন ত্যাগ করে এবং তার এখনও চলমান সমস্ত বাচ্চাদের কাছে সাইনআপ পাঠায়, long-running-processমারা যায় না। disownকেবল বাশের সন্তানের তালিকা থেকে নির্দিষ্ট কাজটি সরিয়ে দেয়, সুতরাং এটি সাইনআপের কোনও পাঠানোর চেষ্টা করবে না। nohupশেল থেকে পৃথক একটি প্রোগ্রাম, সুতরাং এটি সমস্ত শেলগুলির সাথে কাজ করে, যেখানে disownবাশ অন্তর্নির্মিত। nohupচালানোর কমান্ডটি গ্রহণ করে, যেখানে disownকাজটি শুরু হওয়ার পরে কেবল কাজ করে এবং আপনি এটি ব্যাকগ্রাউন্ড করেছেন যাতে আপনি শেলটিতে ফিরে যেতে পারেন।
ওয়ারেন ইয়ং

3
যারা নোহুপ ও অস্বীকারের সাথে অপরিচিত তাদের জন্য দুর্দান্ত তদারকি
ড্যান

7
tail -f nohup.outআপনি ফিরে এসে কি হচ্ছে তা যাচাই করতে।
রিকার্ডো স্টুভেন

141

আপনি জিএনইউ স্ক্রিন ব্যবহার করতে চান। এটা দুর্দান্ত দুর্দান্ত!

ssh me@myserver.com
screen               #start a screen session
run-a-long-process

CTRL+ a, dআপনার স্ক্রিন সেশন থেকে আলাদা করতে

exit                 #disconnect from the server, while run-a-long-process continues

আপনি যখন আপনার ল্যাপটপে ফিরে আসবেন:

ssh me@myserver.com
screen -r            #resume the screen session

তারপরে আপনার দীর্ঘ-চলমান প্রক্রিয়াটির অগ্রগতি পরীক্ষা করে দেখুন!

screenএকটি খুব বিস্তৃত সরঞ্জাম, এবং আমি যা বর্ণনা করেছি তার থেকে অনেক বেশি কিছু করতে পারে। স্ক্রিন সেশনে থাকাকালীন ctrl + a ,? কয়েকটি সাধারণ কমান্ড শিখতে। সম্ভবত সবচেয়ে সাধারণ:

  • CTRL+ a, cএকটি নতুন উইন্ডো তৈরি করতে
  • CTRL+ a, nআপনার স্ক্রিন সেশনে পরবর্তী উইন্ডোতে স্যুইচ করতে
  • CTRL+ a, pআপনার স্ক্রিন সেশনে পূর্বের উইন্ডোতে স্যুইচ করতে
  • আপনি যদি বিভিন্ন সিস্টেমে একগুচ্ছ থেকে লগইন করেন, তবে আপনি ঘটনাক্রমে নিজেকে অন্য কম্পিউটারে একটি সক্রিয় স্ক্রিন সেশনে সংযুক্ত রেখে যেতে পারেন। সেই কারণে, আমি সর্বদা screen -d -rএটি নিশ্চিত করার জন্য পুনরায় শুরু করি যে আমার স্ক্রিন সেশনে যদি অন্য একটি শেল সংযুক্ত থাকে তবে আমার বর্তমান সিস্টেমে পুনরায় শুরু করার আগে এটি আলাদা করা হবে।

8
tmux পর্দার একটি আধুনিক অ্যানালগ।
zvolkov

আমি আধুনিক সম্পর্কে জানি না, তবে tmux- এর ডিফল্ট কী উপসর্গ (Ctrl + b) সহায়তা করে যদি আপনি ব্যাশ / ইমে্যাকস কী ব্যবহার করেন।
sajith

2
আপনি যদি কোনও কারণে কোনও ভাগ করে নেওয়া টার্মিনাল চান তবে স্ক্রিনটি বেশ দুর্দান্ত। একটি স্ক্রিন তৈরি করুন screen -S nameএবং আপনার অন্যান্য বন্ধুকে এর সাথে সংযুক্ত হতে দিন screen -x name
প্যাট্রিক

1
tmuxসাথে tmuxinatorঅভিনব সেটআপগুলির জন্য একটি দুর্দান্ত সংমিশ্রণ, যখন আমি screenদ্রুত এবং সহজ সমাধান হিসাবে পছন্দ করি ।
আর্থলেলনে

এই উত্তরটি সেরা one এটি আমার পছন্দ। দুর্দান্ত গবেষণা
জাফার উইলসন

42

আপনি যদি আগে থেকে পরিকল্পনা এবং সেটআপ screenনা করে থাকেন তবে নিচেরটি করুন:

  1. যদি আপনার প্রক্রিয়াটি পটভূমিতে চলমান থাকে: Ctrl-Zযাও # 3, অন্যথায়: অগ্রভূমি প্রক্রিয়া স্থগিত করার জন্য। এটি স্থগিত প্রক্রিয়াটির # কাজের প্রতিবেদন করবে, উদাহরণস্বরূপ:

    [1]+  Stopped                 processName
    
  2. processNameব্যাকগ্রাউন্ডে প্রেরণ করুন bg %1(যাই হোক না কেন কাজ # টি অনুসরণ করছে তা ব্যবহার করে %)। এটি processNameপটভূমিতে আবার শুরু হবে ।

  3. বা processNameসাথে অস্বীকৃত । আপনি যদি আপনার বর্তমান শেলটি শেষ না করে অবধি মালিকানা বজায় রাখতে চান তবে পতাকাটি ব্যবহার করুন ।disown %1disown PID-h


5
এর জন্য ধন্যবাদ! আমার একটি কাজ চলছে এবং আমি ভেবেছিলাম যে আমি এটি চালিয়ে যেতে সক্ষম হব না কারণ &এটি শুরু করার সময় আমি ব্যবহার করি নি। এটি দুর্দান্ত কাজ বলে মনে হচ্ছে!
ম্যাট

4
এটা চমৎকার! আমি কখনই জানতাম না যে লিনাক্স আপনাকে এই জাতীয় সক্রিয় প্রক্রিয়াগুলির নিয়ন্ত্রণ স্থানান্তর করতে দেয়। আমি ভয় পেয়েছিলাম যে দীর্ঘক্ষণ চলমান প্রক্রিয়াটির মাঝে আমার সার্ভারে এসএসএইচ করার সময় আমার ব্যাটারিটি মারা যাবে, এবং এটি আমার পক্ষে উত্তর!
প্লুটো

14

আপনি যা ব্যবহার করতে চান তা হ'ল স্ক্রিন বা আরও ভাল ব্যবহারকারী-বান্ধব র‍্যাপারটিকে স্ক্রিনের চারপাশে বাইবু বলা হয়।

স্ক্রিন আপনাকে একই এসএস সেশনে একাধিক ভার্চুয়াল টার্মিনাল সেশন চালানোর অনুমতি দেয়। একটি টিউটোরিয়াল এবং সহায়তা পৃষ্ঠাগুলি উপলব্ধ।

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

আর একটি দুর্দান্ত বৈশিষ্ট্য হ'ল আপনার এসএসএস সংযোগটি সংযোগ বিচ্ছিন্ন হওয়ার পরে আপনার সমস্ত স্ক্রিন আপ থাকতে পারে। আপনি কেবল এসএসএসের মাধ্যমে আবার সংযুক্ত হয়ে বাইবুুকে কল করুন এবং সবকিছুই আগের মতো।

শেষ অবধি বাইবুর কিছু স্ক্রিনশট


আমি সত্যই এটি কী তা না জেনে ব্যোবু টার্মিনালের মধ্যে আমার সার্ভারে একটি প্রক্রিয়া চালু করেছি (আমি কেবল টার্মিনালটি সন্ধান করে বাইবোকে ক্লিক করেছি কারণ আমি এটি আগে কখনও দেখিনি)। আমি ব্যোবু ব্যবহার করতে থাকি কারণ এর নীচে রঙিন স্ট্যাটাস বার ছিল এবং আমি ভেবেছিলাম এটি দুর্দান্ত। আজ আমি নিজেকে এসএসএইচ এর মাধ্যমে দূরবর্তী অবস্থানের টার্মিনাল সেশনে অ্যাক্সেস করতে চাইছি। আমাকে যা করতে হয়েছিল তা হ'ল "বাইবু" টাইপ করে এবং এটি ঠিক এখনই টার্মিনাল সেশনটি দেখিয়েছে। সত্যিই খুশি আমি বাইবুকে পেরেছি!
নিক

8

এটা লক্ষণীয় হতে পারে

ssh -t lala screen -rxU mooহোস্ট লালা উপর moo অধিবেশন সংযুক্ত করা হবে

ssh -t lala screen -S mooহোস্ট লালা উপর moo সেশন তৈরি করবে

এবং

ssh -t lala screen -S moo quuxতৈরি করবে নর্দন হোস্ট অধিবেশন Lala এবং প্রোগ্রাম চালানো quux , সমাপ্তির উপর অধিবেশন ছেড়ে।


3

পুরানো প্রশ্ন, আজব কেউ এখনও tmux পরামর্শ দেয়নি , যা এন কনসোলগুলির জন্য একটি মোড়ক হিসাবে কাজ করে এবং প্রয়োজন পর্যন্ত এগুলি খোলা রাখে। এটি tmux এর বেশ কয়েকটি ফাংশনের পাশে আরও নিয়ন্ত্রণের অনুমতি দেয়। এটি পরিচালনা করা সহজ, আপনি কেবল tmux চালান, যা আপনাকে তার শেলের মধ্যে নিয়ে আসে, আপনার দীর্ঘকালীন কাজ শুরু করে, তারপরে d (বিযুক্তি) এর পরে ctrl + b টিপবে (টিএমউক্সের ctrl+b"ঠিক আছে গুগল", এবং dএটি বন্ধ করার কমান্ড) শেল থেকে প্রস্থান ছাড়াই)। উদাহরণস্বরূপ, পুট্টি যদি আপনি বন্ধ করেন তবে এটি আসলে কাজ করে। রাতের খাবারের পরে, আপনি আবার সংযুক্ত হয়ে গেলে, আপনি tmux attachঠিক যেমন রেখেছিলেন ঠিক তেমন স্ক্রিনটি দেখতে আপনি tmux আবার খুলতে পারেন । আমি যা কিছু পছন্দ করি তা বিচ্ছেদী ফলক: ctrl+bএবং তারপরে টিপুন "। এক ফলক থেকে অন্য ফলকে পরিবর্তন করতে ctrl+bএবং তারপরে উপরের / নীচে তীরটি টিপুন।


3

আপনি এখানে একটি ভাল গাইড খুঁজে পেতে পারেন: আপনি সংযোগ বিচ্ছিন্ন করার পরে আপনার এসএসএইচ সেশন চালিয়ে যান

sudo apt-get install screen

এখন আপনি কমান্ড লাইনে স্ক্রিনটি টাইপ করে একটি নতুন স্ক্রিন সেশন শুরু করতে পারেন। আপনাকে পর্দা সম্পর্কে কিছু তথ্য প্রদর্শিত হবে। এন্টার টিপুন এবং আপনি একটি সাধারণ প্রম্পটে পাবেন।

সংযোগ বিচ্ছিন্ন করতে (তবে অধিবেশনটি চালিয়ে যান) হিট Ctrl+ Aএবং তারপরে Ctrl+ Dতাত্ক্ষণিকভাবে পরের দিকে। আপনি বার্তাটি দেখতে পাবেন [বিচ্ছিন্ন]

ইতিমধ্যে চলমান সেশনে পুনরায় সংযোগ করতে

screen -r

বিদ্যমান সেশনে পুনরায় সংযোগ স্থাপন করতে, বা যদি না উপস্থিত থাকে তবে একটি নতুন তৈরি করুন

screen -D -r

চলমান স্ক্রিন সেশনটির ভিতরে একটি নতুন উইন্ডো তৈরি করতে হিট Ctrl+ Aএবং তারপরে Cতাত্ক্ষণিকভাবে পরের দিকে। আপনি একটি নতুন প্রম্পট দেখতে পাবেন।

এক স্ক্রিন উইন্ডো থেকে অন্য হিট Ctrl+ এ Aএবং তারপরে Ctrl+ Aতাত্ক্ষণিকভাবে পরম্পরায় To

ওপেন স্ক্রিন উইন্ডো তালিকাবদ্ধ করতে হিট Ctrl+ Aএবং তারপরে Wতাত্ক্ষণিকভাবে পরের দিকে


আপনি <kbd>Ctrl</kbd>কীবোর্ড কী হিসাবে নামগুলি দেখানোর জন্য ব্যবহার করতে পারেন ।
টমাসজ

1

আমি এনএক্স নোমাচাইন ব্যবহার করি, যা আমার জন্য বিনামূল্যে কারণ এটি কেবল আমার। মূলত, এটি সার্ভারে একটি এক্স সেশন চালায় যা আপনি সংযোগ করতে এবং বার বার সংযোগ বিচ্ছিন্ন করতে পারেন। আপনি সংযুক্ত না থাকলে এক্স সেশন চলতে থাকে keeps সংযোগগুলি যে কোনও জায়গা থেকে তৈরি করা যেতে পারে। আপনি ভাসমান উইন্ডো বা পুরো ডেস্কটপযুক্ত একক উইন্ডোর মধ্যে বেছে নিতে পারেন (যেমন একটি সম্পূর্ণ জিনোম ডেস্কটপ)। ক্লায়েন্টটি (যা আপনি আপনার ল্যাপটপে চালাবেন) লিনাক্স, ম্যাকস, সোলারিস বা মাইক্রোসফ্ট উইন্ডোতে চালানো যেতে পারে। পরবর্তী ক্ষেত্রে যদি আপনি ভাসমান উইন্ডোজগুলি চয়ন করেন তবে সেগুলি পৃথকভাবে উইন্ডোজ টাস্কবারে উপস্থিত হয়।

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

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