একটি বিচ্ছিন্নযোগ্য সেশনে বর্তমান কমান্ড স্থানান্তর করুন (tmux / স্ক্রিন)


41

আমি বর্তমানে একটি ব্যাকআপ চালাচ্ছি এবং এটি এখন tmuxবা পছন্দ মতো আলাদাযোগ্য স্থানান্তরিত হওয়া দরকার screen। কমান্ড বর্তমানে চলছে যখন এটি করার কোন উপায় আছে?

আমি Ctrl+ টিপে কমান্ডটি পটভূমিটি প্রেরণ করতে পারি এবং কমান্ড Zজারি করে এটি পিছনে রাখতে পারি fg। তবে আমি জানি না যে আমি টার্মিনালটি থেকে বেরিয়ে এসে সেই অধিবেশনটি ফিরে যেতে পারে কিনা।


1
এটি করার কোনও উপায় নেই। এটি আলাদাযোগ্য হওয়ার জন্য আপনাকে একটি পর্দা (বা অন্যান্য) সেশনের মধ্যে থেকে কমান্ডটি শুরু করতে হবে।
ড্যান ডি

উত্তর:


45

এটি বেশিরভাগ সময় কাজ করে:

পূর্বশর্ত: রয়েছে reptyrএবং tmux/ screenইনস্টলড; আপনি তাদের সঙ্গে এটি করতে সক্ষম হবেন apt-getবা yum, আপনার প্ল্যাটফর্মে উপর নির্ভর করে।

  1. প্রক্রিয়া স্থগিত করতে Ctrl+ ব্যবহার করুন Z

  2. এর সাথে পটভূমিতে প্রক্রিয়াটি আবার শুরু করুন bg

  3. এর সাথে পটভূমির প্রক্রিয়াটির আইডি সন্ধান করুন jobs -l

    আপনি এর অনুরূপ কিছু দেখতে পাবেন:

    [1]+ 11475 Stopped (signal) yourprocessname
    
  4. বর্তমান পিতামাতার (শেল) এর সাথে চাকরিটি অস্বীকার করুন disown yourprocessname

  5. শুরু tmux(পছন্দসই), বা screen

  6. প্রক্রিয়াটি পুনরায় সংযুক্তিতে tmux/ screenসেশনে পুনরায় সংযুক্ত করুন:

    reptyr 11475
    
  7. এখন আপনি মাল্টিপ্লেক্সার বিচ্ছিন্ন করতে পারেন (ডিফল্ট Ctrl+ + B, Dজন্য tmux, অথবা Ctrl+ + A, Dজন্য screen), এবং সংযোগ বিচ্ছিন্ন, SSH যখন আপনার প্রক্রিয়ায় চলতে tmux/ screen

  8. পরে যখন আপনি আবার এসএসএইচের সাথে সংযুক্ত হন, তখন আপনি আপনার মাল্টিপ্লেজারে (যেমন tmux attach) সংযুক্ত করতে পারেন ।


2
দুর্ভাগ্যক্রমে দৌড়ানোর sudo reptyr 1430পরেও আমি পেয়েছি: "... [-] সন্তানের মধ্যে টিটিটি খুলতে অক্ষম id পিডের সাথে সংযুক্তি করতে অক্ষম 1430: অনুমতি অস্বীকার করা হয়েছে"
ড্যারিল স্পিজিটর

3
আপনি আপনার ক্ষেত্রে -L বিকল্প যেমন reptyr -L 1430 দিয়ে কিছুটা সাফল্য পেতে পারেন।
cgseller

1
প্রয়োজনে এটি চালান:echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
ইয়ানহাঁও


1
এর পরে bg, প্রক্রিয়াটি পটভূমিতে চলমানjobs হওয়া উচিত , Runningতার চেয়ে বরং বলা উচিত Stopped
জি-ম্যান বলেছে 'মনিকাকে

2

reptyr ভাল তবে একটি অনুমতি ত্রুটি পেয়েছি

$ reptyr 30622

[-] Unable to open the tty in the child.
Unable to attach to pid 30622: Permission denied

তারপরে পাওয়া গেল
-L Like '-l', but also redirect the child's stdio to the slave.

যা একটি কবজ মত কাজ করে

$ reptyr -L 30622
Opened a new pty: /dev/pts/4

2
আমি যুক্ত করার সময় -Lআমি আপনার বলার মতো একটি বার্তা পেয়েছি Opened a new pty: /dev/pts/6তবে আমার সাসপেন্ড করা topটিএমউক্সে উপস্থিত হয়নি। আমি এখানে কি মিস করছি?
মেহরাদ মাহমুদিয়ান

-1

যদি আদেশটি উপলভ্য থাকে তবে আপনি এর টার্মিনাল থেকে কাজটি বিচ্ছিন্ন করতে অস্বীকার ব্যবহার করতে পারেন।

যদিও এটির সাথে শুরু করার জন্য এটি Nohup দিয়ে চালানো নিরাপদ।


আপনি এই উপর প্রসারিত করতে পারেন? এটি দিয়ে শুরু করার অর্থ কী nohup? disowningএকটি প্রক্রিয়া কিভাবে কাজ করে?
দারথ অ্যান্ড্রয়েড

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

আমি উল্লিখিত হিসাবে 'অস্বীকার' বেশ বিশ্বাসযোগ্য না বলে খুঁজে পেয়েছি। নোহুপ আসলে খুব ভাল নয়। reptyr তবে সমাধান হতে পারে। github.com/nelhage/reptyr
anastrophe

এটি প্রশ্নের উত্তর দেয় না। প্রশ্নটি কেবল "আমি ব্যাকআপটি না মেরে টার্মিনালটি কীভাবে বন্ধ করব" তা নয়, এটি "আমি কীভাবে পরে এটি পুনরায় শুরু করব" is যার সঠিক উত্তরটি "আপনি পারবেন না"।
গাবে

আমি এখানে একটি সম্ভাব্য মতানৈক্যগত মতবিরোধ দেখতে পাচ্ছি এবং 'পুনর্বাসনযোগ্য', 'অবস্থান-স্বতন্ত্র', 'বিচ্ছিন্ন তমাক্স' ইত্যাদির মতো কীওয়ার্ডগুলির জন্য এটি বেশ জনপ্রিয় অনুসন্ধান ফলাফল I প্রোগ্রামটি বন্ধ করে আবার চালু করার মধ্যে বিভিন্ন মেমরি ম্যাপিংয়ের কারণে আপনি কি বলতে চেয়েছিলেন "আপনি পারবেন না"? একটি ব্যাকআপ প্রোগ্রাম কেবল এটি জানাতে চলেছে যে এটি দেওয়া ফাইলের কাঠামোর দ্বারা কী ফাইলগুলিকে ব্যাক আপ করতে হবে এবং ভবিষ্যতে শারীরিক স্মৃতি ম্যাপেবল করার জন্য ফাইলের কাঠামো বিদ্যমান exists (আমরা যে উপলক্ষে তা ব্যাক আপ করি না!)
জন পি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.