Ssh অধিবেশন শেষ হওয়ার পরে কীভাবে প্রক্রিয়াগুলি চলতে থাকবে?


644

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


উত্তর:


750

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

tmuxscreenঅনেক কারণে উচ্চতর , এখানে কিছু উদাহরণ রয়েছে:

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

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

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

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

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

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

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


4
@ ক্রাইগম ব্যবহার করুন screen -x -r [screenname]বা screen -rxসংক্ষেপে যদি আপনার কেবলমাত্র একটি স্ক্রিন সেশন সক্রিয় থাকে। এটি আপনাকে একটি বিদ্যমান পর্দার উদাহরণ সংযুক্ত করতে দেয়।
লেকেনস্টেইন

5
এই পরামর্শটি আমাকে একই সমস্যাটিতে সহায়তা করেছিল তবে আমি মনে করি এটিতে টাইপও রয়েছে। আমি যথেষ্ট নিশ্চিত যে আপনার টাইপ করতে হবে Ctrl-bএবং তারপরে সেশনটি dছেড়ে / আলাদা করতে tmuxহবে। অবশ্যই tmuxআমার উবুন্টু 12.04 এর সংস্করণটির ক্ষেত্রে এটি ।
cxrodgers

17
উপরের নির্দেশাবলী অনুসরণ করার সময় আমি একটি ভুল করেছি। কেউ যদি একই ভুলের মধ্যে পড়ে যায় তবে আমি এটি ভাগ করে নেব: আমি রিমোট কম্পিউটারের শেলের পরিবর্তে নিজের কম্পিউটারের শেলটিতে টিএমউक्स শুরু করেছি। রিমোট কম্পিউটারের শেল টিউমাক্স শুরু করা দরকার।
Mert নুহোগলু

5
স্ক্রিনটি আবার বিকাশ করা হচ্ছে: list.gnu.org/archive/html/screen-devel/2014-04/msg00024.html আপনি নিজের উত্তর আপডেট করতে পারবেন?
মুরু

4
বিকল্পভাবে, tmux detachটাইপিংয়ের পরিবর্তে চালানctrl-b d
অ্যান্ড্রু

305

বিকল্প 1: nohup

সবচেয়ে ভাল উপায় প্রায়শই সহজতম।

nohup long-running-command &

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

man nohup

বিকল্প 2: bg

আপনি যদি ইতিমধ্যে কয়েকটি চলমান কার্য "পটভূমি" করতে চান তবে আপনার সেরা বাজিটি Ctrl+ Zতারপর চালানো

bg

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

তারপরে আপনার দ্রুত disownলগ আউট করার পরে একটি প্রক্রিয়া চালিয়ে যাওয়া উচিত।

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

মনে রাখবেন, উভয়ই বাশ নির্দিষ্ট। আপনি যদি ব্যাশ ব্যবহার না করে থাকেন তবে কমান্ডগুলি আলাদা হতে পারে।


4
আমি সুপারিশ করবdisown -h
মিশেল

আকর্ষণীয়ভাবে স্ক্রিন এবং
টিএমউক্স খনিজদের

1
bg+ + disownআমার জন্য কাজ করে নি। আমার একটি ডিপ্লোয়মেন্ট স্ক্রিপ্ট চলছিল আমি টিএমউক্সের ভিতরে শুরু করতে ভুলে গিয়েছিলাম, এবং সভার জন্য তাড়াতাড়ি চলে যেতে হবে। স্ক্রিপ্ট অবিচ্ছিন্নভাবে শেলের উন্নতি করে। ctrl+zপ্রক্রিয়াটি বন্ধ করে দিয়েছিল, আমাকে বাশায় ফিরিয়েছে। bgপ্রক্রিয়াটি আবার শুরু হয়েছিল, তবে এটি আবার কীভাবে টাইপ করছিল তা দেখতে অসম্ভব করে তোলে এবং ব্যাশের স্থিতিটিকে আবার আউটপুট করা শুরু করে। তবে, একটি disownকমান্ড তৈরি করেছে "অস্বীকার: কারেন্ট: এ জাতীয় কোনও কাজ নয়"
BrianHVB

এটি julia myFile.jlযে কোনও কারণে আমার পক্ষে কার্যকর হয়নি । tmux না এবং দুর্দান্ত।
কেজিওরআউটআউট

এটি আমার জন্য কাজ করেছে, আপনাকে অনেক ধন্যবাদ
চাদ

207

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

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

সাধারণ দৃশ্য:

  • আপনার দূরবর্তী বাক্সে ssh। টাইপ করুন screenতারপর আপনি চান প্রক্রিয়া শুরু করুন।

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

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


32
আমি পরে আমার স্ক্রিন সেশনগুলির নামটির screen -S nameসাথে সঠিকটির সাথে সংযোগ আরও সহজ করার জন্য ব্যবহার করব ।
ডেভিড ওনিল

লিঙ্কটি নিচে
গ্যাব 好人 好人

1
ব্যক্তিগতভাবে, আমি কোনও প্যাকেজ নিয়ন্ত্রণ সফ্টওয়্যার ছাড়াই একটি বাক্সে কাজ করছি। উত্স থেকে টিএমইউএক্সের (যা আমি ব্যক্তিগতভাবে অভিজ্ঞতা পেয়েছি এবং পছন্দ করি) এর জন্য প্রায় আধ ঘন্টা বিল্ডিং নির্ভরতা ব্যয় করার পরে, এটি স্পষ্ট হয়ে গেছে যে আমার জন্য পর্দাটি আরও ভাল এবং সহজ সমাধান ছিল। টিএল; ডিআর: এই সমস্যার সর্বোত্তম সমাধানটি ব্যবহারের ক্ষেত্রে, মেশিনে এবং আপনাকে কত সময় সেট আপ করতে হবে তার উপর নির্ভর করে। এই উত্তরের জন্য ধন্যবাদ :)
ম্যাক্স ভন হিপ্পেল

screen -Sছুটির আগে এবং screen -rফিরে আসার সাথে সংমিশ্রণটি আশ্চর্যজনক!
মেলোম্যান

এর জন্য ধন্যবাদ. এই সমাধানটি আমার পক্ষে কাজ করেছিল, যখন টিএমউक्स না করে (আমি লিনাক্স মেশিনে ঝাঁকুনির সময় উইন্ডোগুলির জন্য বাশনের একটি সংস্করণ ব্যবহার করি)
মাইকেল

83

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

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

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

অস্বীকার করার সাথে সাথে আপনি টার্মিনালটি বন্ধ করতে পারেন এবং মেশিনে প্রক্রিয়াটি চালু রাখতে পারেন।


10
এটি করা আমার প্রিয় উপায়। আমি প্রায়শই ব্যবহার করিdisown -a && exit
স্টেফানো প্যালাজো

1
পারফেক্ট। এটি একটি সুন্দর আদেশ এবং সমস্ত উত্সাহের দাবিদার!
গ্রেগ

8
একটি সতর্কতার কথা, আমি Ctrl-Z দিয়ে একটি চলমান প্রক্রিয়া বন্ধ করে দিয়েছিলাম এবং কল করার আগে পটভূমিতে এটি শুরু করি না disownএবং এটি এটি হত্যা করে।
এইচডিভ

3
এটি টার্মিনালে লিখতে চাইলে ক্রাশ হতে পারে। চলমান প্রক্রিয়াটির আউটপুট পুনঃনির্দেশ করা তত সহজ নয়। নুহুপ দিয়ে এটি সঠিকভাবে শুরু করা ভাল।
jiggunjer

2
এটি একটি ভাল উত্তর, কারণ এটি সরাসরি প্রশ্নের উত্তর দেয়। ইতিমধ্যে দীর্ঘ চলমান কমান্ডগুলি কার্যকর করার পরে কি করতে হবে প্রশ্নটির লেখক প্রশ্ন করেছিলেন । এই উত্তরগুলির বেশিরভাগটি আপনাকে আদেশগুলি কার্যকর করার আগে আপনাকে কী করতে হবে তা জানায় ।
q0rban

53

আমি একটি বড় এমভিতে আটকে গিয়েছিলাম তাই আমি প্রক্রিয়াটি সেটআপ করার মতো পজিশনে ছিলাম না, স্ক্রিন সেটআপ করে আবার এটি শুরু করব start নিম্নলিখিত পদক্ষেপগুলি মূলত করে প্রসেসটি চালিয়ে আমি ssh সেশনটি প্রস্থান করতে সক্ষম হয়েছি:

  1. এসএসএস [সার্ভার]
  2. হুকুম
  3. Ctrl+ +Z
  4. বিজি
  5. অস্বীকার করুন [প্রক্রিয়া পিড alচ্ছিক, শেষের জন্য ডিফল্ট]
  6. প্রস্থান

পদক্ষেপ 3 বর্তমান প্রক্রিয়াটি বিরতি দেয় (যেমন আমার 'এমভি' কমান্ড))
পদক্ষেপ 4 বিরামপ্রাপ্ত প্রক্রিয়াটিকে ব্যাকগ্রাউন্ডে রাখে এবং এটি পুনরায় শুরু করে।
পদক্ষেপ 5 আপনাকে প্রক্রিয়াটি অস্বীকার করতে দেয়। ** কাজের তালিকা পাওয়ার জন্য কেবল jobsআগে টাইপ করুন type


** অস্বীকার সম্পর্কিত (বাশ ম্যানুয়াল থেকে):

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.

2
অন্তর্নির্মিত সর্বদা আমার প্রথম পছন্দ :) THX
ken_oy

এই উত্তরটি সঠিক হিসাবে চিহ্নিত করা উচিত। এই সমস্যাটি সমাধান করার জন্য স্ক্রিনটি ইনস্টল করা এবং অভ্যস্ত হওয়া অতিরঞ্জিত।
উলরিচ-লরেঞ্জ শ্লিয়েটার

এটি ইতিমধ্যে কার্যকর যখন আপনি ইতিমধ্যে কোনও আদেশ শুরু করেছেন এবং যা দীর্ঘকাল ধরে চলছে। টিএমইউএক্স সেশনে এটি শেষ করে এবং শুরু করতে সময় লাগবে
দীপালী মিত্তাল

1
@ টম-ব্রোসম্যান: দয়া করে এটির মতো অপ্রয়োজনীয় সম্পাদনাগুলি দেখুন ! যদি জব স্পেসিফিকেশন ছাড়াই ডাকা হয় তবে disownবিল্ট-ইন কমান্ডটি সাম্প্রতিক ব্যাকগ্রাউন্ড জবটিতে কাজ করে।
ডেভিড ফোস্টার

22

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

Byobu,

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

sudo aptitude install byobu

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

su -c 'yum install byobu'

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

বাইবু ব্যবহার করে

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

চিত্র Byobu

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

ব্যবহার:

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

বর্তমান সেশনের মধ্যে একটি নতুন উইন্ডো তৈরি করতে আপনি F2 টিপতে পারেন, বিভিন্ন উইন্ডোর মধ্যে স্যুইচ করতে F3-F4 চাপতে পারেন।

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

  • বাইবু ছেড়ে চলে যাওয়ার জন্য এটি চলমান (বিচ্ছিন্ন) এফ 6 টিপুন।
  • পরের বার আপনি আসবেন, ঠিক করুন byobuএবং আপনি যেখানে ছিলেন ঠিক সেখানে ফিরে আসবেন।

    Byobu-আলাদা সংযুক্ত

এছাড়াও আপনি বিভিন্ন বাইবু সেশন তৈরি করতে byobu -S session1পারেন ইত্যাদি। এবং আপনি ফিরে এলে আপনি যে কোনও একটিতে সংযোগ করতে পারেন।

আপনি ব্যোবু ব্যবহার করে আরও অনেক কিছু করতে পারেন। এটা ব্যবহার করো! কিছু নির্দিষ্ট নির্দেশিকা এখানে বা এখানে রয়েছে


আমি আমার উবুন্টু বাক্সে একটি পুটি-ভিত্তিক সেশন থেকে বাইবুকে ব্যবহার করার চেষ্টা করেছি, তবে আমি স্ট্যাটাস লাইনটি বারবার এবং ডিসপ্লেতে স্ক্রোল করি। যদিও এটি F6 টিপে সঠিকভাবে পৃথক করা হয়েছে, এটি আমার সেটআপে ব্যবহারযোগ্য সমাধান নয় not
jfmessier

1
@jfmessier এর কারণ পটিটি এনক্রস (মূলত utf-8) ভাল করে না। এই থ্রেডটি অনুসরণ করে এই সমস্যাটি দূর করা সম্ভব - স্ট্যাকওভারফ্লো.com
সিদ্ধার্থআরটি

এটা সত্যিই দারুন! ১. এটি আমাকে একটি রঙিন বাশ প্রম্পট দেয় যা আমি আমার ডিফল্ট শেল হিসাবে ব্যাশের সাথে সক্ষম করতে পারি না বলে মনে করি এবং ২। একই সময়ে আমি ২ টি বট চালাতে পারি এবং এখনও কাজ করতে আরও একটি টার্মিনাল আছে! @ সিদ্ধার্থআরটি আপনি একজন উর্ধ্বতনকে প্রাপ্য!
দেব

18

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

আপনি ব্যবহার করতে পারেন nohup কিন্তু আধুনিক জ্ঞান আপনি আপনার লগইন হিসাবে পর্দা বা Byobu ব্যবহার যাতে আপনি বিচ্ছিন্ন কিছু চলমান চলে যাবে দাড়ায়।

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

এখানে স্ক্রিনের জন্য যুক্তিসঙ্গত শুরু করার গাইড রয়েছে

বাইবুু মেনু ইত্যাদির সাথে স্ক্রিনের শীর্ষে সহজেই ইন্টারফেস ব্যবহার করতে পারে এটি নতুন উবুন্টুতে পর্দার বর্তমান প্রয়োগও রয়েছে। F2 একটি নতুন টার্মিনাল শুরু করতে F3 / F4 পিছনে এবং সামনে টগল করতে এবং F6 সংযোগ বিচ্ছিন্ন করতে। স্থায়ীভাবে টার্মিনাল শেষ করতে প্রস্থান প্রকার টাইপ করুন।


বাইবু আজকাল টেমুক্স ব্যবহার করে ..
স্কটল

12
"প্রক্রিয়াটি শুরু হয়ে গেলে আপনি এটি করতে পারবেন না, দীর্ঘ কাজ চালানোর আগে আপনার জিনিসগুলি সেট আপ করা দরকার" " - না, আপনি এটি disownঅর্জন করতে ব্যবহার করতে পারেন । @ বাসগির উত্তর দেখুন
সমৃদ্ধ

1
স্ক্রিন এবং টিএমউक्स শিখতে লড়াই করার পরে .... বাইবু আমার চোখে জল এনেছে
HDave

disownএবং যদি প্রয়োজন হয় Ctrl-zতবে bgএটি সক্রিয় টার্মিনাল এবং পটভূমিতে পেতে। তারপরে disown,।
মিমোরালিয়া

8

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

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

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

অবশেষে কমান্ডটি অস্বীকার করুন (বিজি কমান্ডের মতো চাকরিদারি ...

এটি আপনার শেল এবং পটভূমিতে প্রক্রিয়াটির মধ্যে পিতা-সন্তানের সম্পর্ক সরিয়ে দেবে, আপনার শেলটি বন্ধ হয়ে গেলে এটি মারা যেতে বাধা দেবে।


2
এই উত্তরটি সেরা! সবাই কেন কথা বলছে screen, প্রশ্নটি লগইন পরবর্তী ইভেন্টে উত্থাপিত হয়েছিল, প্রক্রিয়াগুলি কীভাবে চলতে হবে, এখন লগ ইন করার পরে তবে সেগুলি শুরু করার আগে। দুর্দান্ত উত্তর জর্জি, আপনি সত্যিই আমাকে সাহায্য করেছেন! :)
jwbensley

1
কেবলমাত্র bg(ব্যতীত %1) প্রায়শই যথেষ্ট, যেহেতু ডিফল্টটি বর্তমান কাজ
ওয়াল্টার ট্রস

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

8

আমি দীর্ঘ সময় ধরে চলমান একটি একক শেল স্ক্রিপ্টের জন্য, আমি লগইন করব এবং '&' ব্যবহার করে পটভূমিতে প্রক্রিয়াটি চালাব।

উদাহরণ:

/path/to/my/script &

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


3
হ্যাঁ, আমি জানতে চাই যে এই সহজ সমাধানের চেয়ে কীভাবে স্ক্রিন / টিএমউक्स ভাল।
ম্যাডস স্কজার্ন

হ্যাঁ, আমি এটি আমার উবুন্টুতেও দেখতে পাচ্ছি, তবে তাত্ত্বিকভাবে এটি হওয়া উচিত নয়। আমি বুঝতে পারছি না
ড্যানিয়েল পিনিয়ল

1
@ ম্যাডসস্কার্ন কারণ আপনি এই পদ্ধতিটি ব্যবহার করে স্ক্রিপ্টে কোনও ইনপুট প্রবেশ করতে পারবেন না।
কেন শার্প

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

4

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

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

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

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


3

সহজ উত্তর ...

ctrl + z চলমান প্রোগ্রামটি স্থগিত করবে

"বিজি" এটি পটভূমিতে চালাবে


5
প্রক্রিয়াটি অস্বীকার না করে (যেমন disownবা কিছু দিয়ে nohup), এটি সাধারণত এসএসএইচ অধিবেশন শেষে প্রক্রিয়াটি চালিয়ে রাখবে না।
এলিয়াহ কাগন

3
আমার উবুন্টু সার্ভারে, ডিফল্ট সেটআপ সহ, এটি সত্যিই চলতে থাকবে!
ম্যাডস স্কজার্ন

3

সবচেয়ে সহজ উপায় হ'ল ব্যাকগ্রাউন্ডে আপনার কমান্ডটি চালানো &। তারপরে শুধু লিখুন:

disown -a

0

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

shell$ cat > test.pl

#!/usr/bin/perl
while(1){
     sleep(1);
}
    shell$ perl ./test.pl &
    shell$ exit
    logout
    shell$ ps aux test.pl
    mymom 31337     1  0 13:25 ?        00:00:00 perl ./test.pl
    shell$ 

যদিও আমি সম্মত হই যে screenএটি চালানোর সর্বোত্তম উপায় হ'ল , যদিও আমার স্ক্রিপ্ট ফাইলগুলি বা যা কিছু লগ করার জন্য লিখেছিল .. আমার কখনই ব্যবহারের প্রয়োজন হয়নি disown -a বা nohupএটি সম্পূর্ণ প্যারাওয়ের বাইরে না থাকলে। সম্ভবত কেউ ডিফল্টরূপে বাশ কীভাবে আচরণ করে সে সম্পর্কে কিছুটা আলোকপাত করতে পারে? সম্ভবত কিছু সিস্টেম প্রশাসকরা তাদের ব্যবহারকারীদের প্রক্রিয়াটি সিস্টেমকে ওভারলোডিং থেকে বাঁচাতে বৃহত শেলের উপর ডিফল্ট পরিবর্তন করে?


আপনার যদি আরও কোনও জিজ্ঞাসা থাকে তবে দয়া করে এটি একটি নতুন প্রশ্ন
হিমাইল

0

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

আপনি এই সেটিংসটি আপনার logind.conf( /etc/systemd/logind.conf) এ পরিবর্তন করতে পারেন :

KillUserProcesses=no

Https://unix.stackexchange.com/questions/490267 তে উত্তর দেওয়ার জন্য ধন্যবাদ ।


-1

পরিবর্তে :

cmd options; 

আগে যুক্ত করুন nohup:

nohup cmd options & 

তারপরে, আপনি কনসোল স্টাডাউট দ্বারা দেখতে সক্ষম হবেন:

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