এসএসএইচ সেশন শেষ করার পরে প্রক্রিয়াগুলি কীভাবে চলতে হবে?

ধরা যাক আমি একটি এসএসএইচ সেশন থেকে প্রক্রিয়াগুলির একটি গুচ্ছ চালু করি দূরবর্তী মেশিনে চলমান এই প্রক্রিয়াগুলি রাখার সময় কি এসএসএইচ সেশনটি বন্ধ করা সম্ভব?

আপনার আধুনিক বিকল্পগুলির সন্ধান করা উচিত tmux.

tmux থেকে উচ্চতর screen অনেক কারণে, এখানে কয়েকটি উদাহরণ দেওয়া হল:

  • উইন্ডোজ সেশনের মধ্যে সরানো যেতে পারে এবং এমনকি একাধিক সেশনের সাথে লিঙ্ক করা যেতে পারে
  • উইন্ডোগুলি অনুভূমিকভাবে এবং উল্লম্বভাবে প্যানে বিভক্ত করা যেতে পারে
  • ইউটিএফ -8 এবং 256 রঙিন টার্মিনালের জন্য সমর্থন
  • সেশনগুলি কোনও সেশনে প্রবেশের প্রয়োজন ছাড়াই শেল থেকে নিয়ন্ত্রণ করা যায়

বেসিক কার্যকারিতা

ব্যাখ্যা হিসাবে একই কার্যকারিতা পেতে উত্তর সুপারিশ screen, আপনাকে নিম্নলিখিতগুলি করতে হবে:

  • রিমোট মেশিনে এসএসএইচ
  • আরম্ভ tmux টাইপ করে tmux শেল মধ্যে
  • শুরু করার ভিতরে আপনি যে প্রক্রিয়াটি চান তা শুরু করুন tmux সেশন
  • ছেড়ে দিন / বিচ্ছিন্ন করুন tmux টাইপ করে সেশন Ctrl+b এবং তারপর d

আপনি এখন রিমোট মেশিন থেকে নিরাপদে লগ অফ করতে পারেন, আপনার প্রক্রিয়াটি ভিতরে চলতে থাকবে tmux. আপনি যখন আবার ফিরে আসেন এবং আপনার প্রক্রিয়াটির স্থিতি পরীক্ষা করতে চান আপনি ব্যবহার করতে পারেন tmux attach আপনার সাথে সংযুক্ত করতে tmux সেশন.

আপনি যদি একাধিক সেশন পাশাপাশি চলতে চান তবে আপনার প্রতিটি সেশনের নাম ব্যবহার করা উচিত Ctrl+b এবং $. আপনি বর্তমানে চলমান সেশনগুলির একটি তালিকা ব্যবহার করে পেতে পারেন tmux list-sessions, এখন কমান্ড সহ একটি চলমান সেশনের সাথে সংযুক্ত করুন tmux attach-session -t <session-name>.

tmux একটি একক সময় একটি একক উইন্ডো হ্যান্ডেল চেয়ে অনেক বেশি উন্নত কিছু করতে পারি. আরও তথ্যের জন্য একটি চেহারা আছে man tmux অথবা টিএমএক্স গিথুব পৃষ্ঠা. বিশেষ করে, এখানে একটি এফএকিউ মধ্যে প্রধান পার্থক্য সম্পর্কে screen এবং tmux.

বিকল্প 1: nohup

সবচেয়ে ভাল উপায় প্রায়ই সহজ.

nohup long-running-command &

এটি এর জন্য বিশেষভাবে তৈরি করা হয়েছিল, এটি এমনকি স্টডআউটকে লগ করে nohup.log.

man nohup

বিকল্প 2: bg + disown

ctrl+zbgdisown -h

আপনি যদি ইতিমধ্যে চলমান কাজগুলি উদ্ধৃত করতে চান তবে Ctrl+Z তারপর চালান bg এটা চলমান চালিয়ে যেতে সক্ষম হবেন, ব্যাকগ্রাউন্ড আপনার সাম্প্রতিকতম স্থগিত টাস্ক করা. disown আপনি লগ আউট করার পরে প্রক্রিয়া চলমান রাখা হবে. দ্য -h পতাকা বাধা দেয় হ্যাংআপ.


screen এবং অন্যদের এটা করতে পারেন, কিন্তু যে তারা কি জন্য না. আমি সুপারিশ nohup কাজের জন্য আপনি জানেন যে আপনি পিছনে চলে যাচ্ছেন এবং bg কাজের জন্য আপনি ইতিমধ্যে চলমান করছি এবং পুনরায় শুরু করতে চান না.

মনে রাখবেন, উভয় ব্যাশ নির্দিষ্ট. আপনি ব্যাশ ব্যবহার করছি না, তারপর কমান্ড ভিন্ন হতে পারে.

আপনি এটি ব্যবহার করে করতে পারেন screen.

ধরন man screen আরও জানতে বা এটি পড়তে স্ক্রিন ম্যান পৃষ্ঠা.

সহজ দৃশ্যকল্প:

  • আপনার দূরবর্তী বাক্সে এসএসএইচ ধরন screen তারপর প্রক্রিয়া আপনি চান শুরু.

  • প্রেস Ctrl-A তারপর Ctrl-D. এই আপনার পর্দা সময় "বিচ্ছিন্ন" কিন্তু চলমান আপনার প্রসেস ছাড়বে. আপনি এখন দূরবর্তী বক্স থেকে লগ আউট করতে পারেন.

  • আপনি যদি পরে ফিরে আসতে চান তবে আবার লগ ইন করুন এবং টাইপ করুন screen -r এটি আপনার স্ক্রিন সেশনটি "পুনরায় শুরু" করবে এবং আপনি আপনার প্রক্রিয়াটির আউটপুট দেখতে পাবেন

স্ক্রিন এবং নোহুপ হ ' ল আরও ভাল উপায়, তবে যদি আপনাকে ইতিমধ্যে স্ক্রিন বা নোহআপ ছাড়াই চলমান কোনও প্রক্রিয়া আলাদা করতে হয় তবে আপনি চালাতে পারেন অস্বীকার কমান্ড.

disown [-ar] [-h] [jobspec… |pid… ]

বিকল্প ছাড়া, প্রতিটি সরান জবস্পেক সক্রিয় কাজের টেবিল থেকে. যদি -h বিকল্প দেওয়া হয়, কাজটি টেবিল থেকে সরানো হয় না, তবে চিহ্নিত করা হয় যাতে শেলটি একটি দীর্ঘশ্বাস পেলে দীর্ঘশ্বাস ফেলে চাকরিতে প্রেরণ করা হয় না যদি জবস্পেক উপস্থিত নেই, এবং তন্ন তন্ন -a না -r বিকল্প সরবরাহ করা হয়, বর্তমান কাজ ব্যবহার করা হয়. যদি না জবস্পেক সরবরাহ করা হয়, -a বিকল্প অপসারণ বা সব কাজ চিহ্নিত মানে; দ্য -r একটি ছাড়া বিকল্প জবস্পেক যুক্তি কাজ চলমান অপারেশন সীমিত.

অস্বীকার সঙ্গে আপনি টার্মিনাল বন্ধ এবং মেশিনে চলমান প্রক্রিয়া পেতে পারেন.

আমি প্রক্রিয়া বন্ধ করার জন্য একটি অবস্থানে ছিল না, তাই আমি একটি বৃহৎ এমভি আটকে ছিল, সেটআপ পর্দা এবং তারপর আবার শুরু. আমি মূলত নিম্নলিখিত পদক্ষেপগুলি করে চলমান প্রক্রিয়াটি দিয়ে এসএসএইচ সেশন থেকে বেরিয়ে আসতে পেরেছি:

  1. এসএসএইচ সংযোগ স্থাপন করুন: ssh user@host
  2. প্রক্রিয়া শুরু করতে পছন্দসই কমান্ডটি চালান
  3. প্রেস Ctrl+Z প্রক্রিয়া বিরতি
  4. চালান bg পটভূমিতে বিরতি দেওয়া প্রক্রিয়া করা এবং এটি পুনরায় শুরু করার জন্য.
  5. চালান disown [pid] প্রক্রিয়া অস্বীকার করার (প্রক্রিয়া আইডি ঐচ্ছিক, ডিফল্ট প্রক্রিয়া শেষ). কাজের একটি তালিকা পেতে কেবল টাইপ করুন jobs আগে.
  6. চলমান দ্বারা এসএসএইচ সেশন থেকে প্রস্থান করুন logout.

এর ব্যবহার disown কমান্ড:

disown [-ar] [-h] [jobspec ... | pid ... ]              Without  options,  remove  each jobspec from the table of active              jobs.  If jobspec is not present, and neither the -a nor the  -r              option  is  supplied, the current job is used.  If the -h option              is given, each jobspec is not removed from  the  table,  but  is              marked  so  that  SIGHUP  is  not  sent  to the job if the shell              receives a SIGHUP.  If no jobspec is  supplied,  the  -a  option              means  to  remove or mark all jobs; the -r option without a job‐              spec argument restricts operation to running jobs.   The  return              value is 0 unless a jobspec does not specify a valid job.

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

বিওয়াইবিইউ

ডেবিয়ান-ভিত্তিক মেশিনে এটি করে কম্পিউটারে বায়োবু ইনস্টল করা যেতে পারে:

sudo aptitude install byobu

ইয়াম ব্যবহার করে, আপনি করেন

su -c 'yum install byobu'

অন্যান্য বিতরণে বাইওবিইউ ইনস্টল করাও সম্ভব

বায়োবু ব্যবহার করা

আপনি চালিয়ে বাইবু শুরু করতে পারেন byobu এসএসএইচ ব্যবহার করে সংযোগ করার পরে হোস্ট মেশিনেএটি আপনাকে এমন একটি শেল দেবে যা দেখতে এটির মতো দেখাচ্ছে:

image-byobu

আপনি উবুন্টু মেশিনে বাইওবু টার্মিনালটিও ব্যবহার করতে পারেন-এক্স বিকল্প এবং সহজেই একটি পুরোপুরি কাজ করা বাইওবু.

ব্যবহার:

টাইপ করে বাইবু শুরু করুন byobu.

বিভিন্ন উইন্ডোর মধ্যে স্যুইচ করতে আপনি বর্তমান সেশনের মধ্যে একটি নতুন উইন্ডো তৈরি করতে এফ 2 টিপতে পারেন, এফ 3-এফ 4

বাইবু সম্পর্কে সেরা অংশটি হ ' ল, টার্মিনালটি ছেড়ে যাওয়ার জন্য আপনাকে টার্মিনালে চলমান প্রক্রিয়াগুলি আসলে হত্যা করতে হবে না. আপনি কেবল স্ক্রিন/টিএমএক্সএক্স (বায়োবুর কঙ্কাল) পটভূমিতে প্রেরণ করতে পারেন এবং পরের বার আসার পরে আবার শুরু করতে পারেন:

  • বাইবু ছেড়ে চলে যেতে এবং এটি চালিয়ে যেতে (বিচ্ছিন্ন) টিপুন এফ 6.

  • পরের বার আপনি আসবেন, শুধু করুন byobu এবং আপনি যেখানে ছিলেন ঠিক সেখানেই ফিরে আসুন.

    byobu-detach-attach

আপনি এর মাধ্যমে বিভিন্ন বায়োবু সেশনও তৈরি করতে পারেন byobu -S session1 এবং তাই. আপনি ফিরে আসা এবং যখন আপনি তাদের হয় সাথে সংযোগ করতে পারেন.

আপনি বাইবু ব্যবহার করে আরও অনেক কিছু করতে পারেন এটি ব্যবহার করুন!কিছু নির্দিষ্ট গাইড হ ' ল এখানে, বা এখানে.

প্রক্রিয়া শুরু হয়ে গেলে আপনি এটি করতে পারবেন না, দীর্ঘ চলমান কাজ চালানোর আগে আপনার জিনিসগুলি সেট আপ করা দরকার

আপনি ব্যবহার করতে পারেন নোহুপ তবে আধুনিক জ্ঞান আপনাকে স্ক্রিন বা বাইওবুকে আপনার লগইন হিসাবে ব্যবহার করার পরামর্শ দেয় যাতে আপনি জিনিসগুলি আলাদা করতে এবং চালিয়ে যেতে পারেন.

স্ক্রিন আপনি কাজ দিনের শেষ অতিক্রম চালানো যে দীর্ঘ চলমান প্রসেস চেক করতে চান তাহলে সুবিধাজনক, যা অন্য থেকে এক মেশিন থেকে বিচ্ছিন্ন এবং পুনরায় সংযুক্ত করতে পারেন যে সুবিধা আছে.

একটি যুক্তিসঙ্গত শুরু আছে স্ক্রিন গাইড এখানে.

বিওয়াইবিইউ মেনু ইত্যাদি সঙ্গে পর্দার উপরে ইন্টারফেস ব্যবহার করার জন্য একটি সহজ রাখে এটি নতুন উবুন্টুতে পর্দার বর্তমান বাস্তবায়ন এফ 2 একটি নতুন টার্মিনাল শুরু করতে এফ 3/এফ 4 পিছনে টগল করতে এবং এফ 6 সংযোগ বিচ্ছিন্ন করতে. স্থায়ীভাবে টার্মিনাল শেষ করতে প্রস্থান টাইপ করুন.

আমি একটি সময় দীর্ঘ সময়ের উপর চলমান আছে যে একটি একক শেল স্ক্রিপ্ট জন্য, আমি লগইন, এবং 'ও রহমান ব্যবহার পটভূমিতে প্রক্রিয়া চালানো হবে;'.

উদাহরণ:

/path/to/my/script &

আমি লগ আউট এবং আমার এসএসএইচ সেশন সংযোগ বিচ্ছিন্ন করেছি. আমি পরে কিছু সময় লগ ইন করার সময়, স্ক্রিপ্ট এখনও স্ক্রিপ্ট থেকে ক্রমাগত তথ্য সংগ্রহ দ্বারা প্রমাণিত নির্বাহ করা হয়.

আরে, যখন আমি একমত যে পর্দা সবচেয়ে কার্যকর বিকল্প.আপনি ভিএনসি সার্ভার ব্যবহার করতে পারেন এবং তারপরে প্রক্রিয়াটি শুরু করতে পারেন

এছাড়াও যদি আপনার একমাত্র আগ্রহগুলি প্রক্রিয়াটি চলমান থাকে এবং এটির পিছনে নিয়ন্ত্রণ নেওয়ার প্রয়োজন হয় না এবং একেবারে সবচেয়ে গুরুত্বপূর্ণ আপনি সচেতন ছিলেন না যে আপনাকে সেশনটি বন্ধ করতে হবে এবং আপনার ইতিমধ্যে প্রক্রিয়াটি চলছে, আপনি যদি শেল হিসাবে ব্যাশ ব্যবহার করেন তবে আপনি ভাগ্যের নন

প্রথমে আপনাকে বিজি %1 এর পরে সিটিআরএল+জেড টাইপ করে প্রক্রিয়াটি পটভূমিতে প্রেরণ করতে হবে (সংখ্যাটি কাজের সংখ্যার উপর নির্ভর করে, সাধারণত এটি 1 হয় তবে আপনি কমান্ডটি ব্যবহার করে সহজেই তালিকাটি টানতে পারেন কাজ)

অবশেষে আদেশ অস্বীকার করুন (জোবআইডি অনুসরণ করুন ).. বিজি কমান্ড হিসাবে একই)

এই আপনার শেল সমাপ্ত হয় যখন এটি মরা প্রতিরোধ, আপনার শেল এবং পটভূমিতে প্রক্রিয়ার মধ্যে পিতা বা মাতা সন্তান সম্পর্ক মুছে ফেলা হবে.

আপনি চেক আউট করা উচিত জিএনইউ স্ক্রিন দেখ, তারা কেমনভাবে তোমার প্রতি উপমা প্রয়োগ করে! রিয়েলটাইমে চালানোর জন্য আপনার কীভাবে আপনার আবেদনের প্রয়োজন তার উপর নির্ভর করে এটি সমাধানের চেয়ে আরও বেশি সমস্যা তৈরি করতে পারে তবে কমপক্ষে এটি আপনাকে আপনার সেশনটি আবার শুরু করার অনুমতি দেবে যেন আপনি এটি কখনও ছাড়েন না

কিভাবে ব্যবহার করে :

  • কমান্ডটি ব্যবহার করুন screen প্রথম শুরু করার জন্য, ভূমিকা বার্তা মাধ্যমে স্ক্রল, আপনি একটি টার্মিনাল হস্তান্তর করা উচিত.
  • সি-এ সি-সি অন্য টার্মিনাল খোলে
  • সি-এ সি-কে একটি টার্মিনাল হত্যা করে
  • আপনি টার্মিনালের মাধ্যমে চক্রের জন্য সি-এ সি-স্পেস এবং সি-এ সি-ব্যাকস্পেস ব্যবহার করতে পারেন
  • আপনি যদি কেবল দুটি টার্মিনাল ব্যবহার করেন তবে সি-এ সি-এ কার্যকর
  • সি-এ সি-ডি বর্তমান স্ক্রিন সেশনকে বিচ্ছিন্ন করে এবং স্ক্রিনগুলি প্রস্থান করে. তারপর আপনি ব্যবহার করতে পারেন screen -r এই অধিবেশন পুনরায় শুরু করতে আপনি একযোগে বিভিন্ন বিচ্ছিন্ন পর্দা সেশন থাকতে পারে, এই ক্ষেত্রে আপনি উপলব্ধ সেশন একটি তালিকা প্রদর্শন করা হবে.

অন্যান্য অনেক অপশন আছে, উদাহরণস্বরূপ বিভক্ত পর্দা জন্য, এবং সব শর্টকাট সম্পূর্ণরূপে স্বনির্ধারিত.

সম্পর্কিত: How can I run a command which will survive terminal close? - Unix & Linux Stack Exchange