বাদ পড়া এসএসএইচ সেশনে পুনরায় সূচনা কমান্ড


32

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


এটা কি আদেশ? আমি অনুমান করছি সাধারণত উত্তরটি হয় না।
davr

কোনও বিশেষ আদেশ নেই, আমি কেবল একটি সাধারণ ধারণা হিসাবে জিজ্ঞাসা করছি।
জন গার্ডেনিয়ার্স

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

আপনি যদি টিচারযুক্ত ল্যাপটপটি ব্যবহার করেন এবং ইথারনেট কর্ডটি টানেন তবে কী হবে?
পল

@। ড্রপলব্রাউয়ার - ডেস্কটপ মেশিনের সাহায্যে যখন আপনি এটি করেন ঠিক তেমনই - সংযোগটি বাদ দেওয়া হয়। সংযোগটি কীভাবে বাদ পড়েছে তা প্রশ্নের সাথে সম্পর্কিত নয়।
জন গার্ডেনিয়ার্স

উত্তর:


13

একটি নতুন টার্মিনালের বর্তমান এসটিডি * ফাইল বিবরণকারীকে একটি পুরানো চলমান প্রক্রিয়ার সাথে সংযুক্ত করার চেষ্টা করা কেবল সমস্যা চাইছে। এমনকি যদি আপনি এটি করতে পরিচালনা করেন তবে টার্মিনালের কাজের নিয়ন্ত্রণ প্রত্যাশার মতো কাজ করবে না। যদি আপনি শেষ পর্যন্ত নেওয়া ওভার প্রোগ্রামটি থেকে বেরিয়ে যান এবং আপনি যে শেলটি দিয়েছিলেন যে এটির ফাইল বর্ণনাকারীদের নতুন-ব্যাকগ্রাউন্ড প্রক্রিয়াতে হস্তান্তর করা হবে তখন তার কী হবে behind যখন শেলটি চলে যায় তখন কি এসএসএস খোলা থাকবে? সম্ভবত না. সুতরাং আপনাকে প্রথমে এটি অন্য কোথাও পুনর্নির্দেশ করতে হবে।

সম্ভব বা না, আমি বাজি রেখেছিলাম যে কেবলমাত্র পরিত্যক্ত প্রক্রিয়াটিকে "প্রাকৃতিকভাবে" হত্যা করা আরও ভাল ble আপনি যদি নিয়ন্ত্রণ পুনরায় চালু করার জন্য প্রয়োজনীয় সমস্ত হ্যাকারি যথাযথ করার জন্য যথাযথ কিছু করার জন্য এবং যদি আপনি একটি অস্থির লিঙ্কে থাকেন তবে আপনার সম্ভবত জানা উচিত যে আগাম এবং কেবলমাত্র পর্দা (বা ভিএনসি) বা আপনার বিচ্ছিন্ন- নিয়ন্ত্রণ নৌকা)। :)


আমি কোনও উত্তর গ্রহণ করতে অসুবিধা বোধ করছি, তাই আমি এটি গ্রহণ করছি কারণ এই সময়ে এটির মধ্যে একটিমাত্র উত্সাহ রয়েছে।
জন গার্ডেনিয়ার্স

5

আমি জানি এটি একটি পুরানো প্রশ্ন, তবে আমি অনুভব করেছি যে আমার মতো অন্য কেউ এর আগে এলে আমার অনুসন্ধানগুলি যুক্ত করা গুরুত্বপূর্ণ is

হ্যাঁ এটি করার কোনও অস্বাভাবিক পরিণতি আমি দেখিনি, তবে এটিই আমি ব্যবহার করেছি এবং এটি আশ্চর্যরকমভাবে কাজ করেছিল। কখনও কখনও যখন আমরা আমাদের সার্ভারে দীর্ঘ প্রক্রিয়াগুলি চালিত করি এটি মাঝে মধ্যে এসএস সেশনটি সংযোগ বিচ্ছিন্ন করে দেয়। Tty অধিবেশন সহ প্রক্রিয়াটি চলমান রয়েছে বলে মনে হয় তবে আমরা এটিতে পুনরায় সংযোগ করতে পারি না। নতুন সংযুক্ত অধিবেশনটিতে প্রক্রিয়াটি টানতে আমি নীচের প্রোগ্রামটি পেয়েছি।

https://github.com/nelhage/reptyr

এখানে আরও তথ্য

https://blog.nelhage.com/2011/02/changing-ctty/


5
সার্ভার ফল্ট আপনাকে স্বাগতম! যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
EEAA

আপনাকে ধন্যবাদ, @ ইউজার 215086! আশ্চর্যজনকভাবে, এই কাজ! আমি কিছুক্ষণের জন্য একটি দীর্ঘ কনফিগার ফাইল সম্পাদনা করছি, কাস্টম সেটিংস এবং সাবধানে লিখিত মন্তব্যগুলির একটি গুচ্ছ যুক্ত করেছি, এবং সংযোগটি নামার পরে প্রায় শেষ হয়েছিল! "নুয়ু !! ..." ছাদে আমি অশ্লীল চিৎকার করার পরে, আমি প্রতিস্থাপনকারী ইনস্টল করেছি, এবং ভয়েলা! আমি ssh অধিবেশনটি ঠিক পুনরুদ্ধার করেছিলাম যেখানে আমি এটি এখনও সম্পাদকের ভিতরে রেখেছি, কয়েকটি জিনিস শেষ করেছি, সংরক্ষণ করেছি, সম্পন্ন হয়েছে !! সাব্বাস! reptyr দুর্দান্ত।
কোল্ডকোল্ড

4

সাধারণত, এটি পরিচালনা করার সঠিক উপায় হ'ল জিএনইউ screenবা ব্যাশ nohupবা disownপ্রক্রিয়া ব্যবহার করে সময়ের আগে এটি প্রস্তুত করা । আপনি যদি ব্যবহার করছেন tcshতবে শেলটি অস্বাভাবিকভাবে প্রস্থান করলে পটভূমি কাজ অস্বীকার করবে।

যদি আপনি ব্যবহার না করে screenতবে অস্বীকার করা পদ্ধতির একটির মাধ্যমে আপনার প্রক্রিয়াটি চালিয়ে যেতে সক্ষম হন তবে আপনি gdb( উত্স ) দিয়ে প্রক্রিয়াটিতে পুনরায় সংযোগ করতে সক্ষম হতে পারেন :

[...] কিছু নোংরা হ্যাকের সাহায্যে 'স্টাডআউট / স্টেডার / স্টিডিন' প্রক্রিয়াটি আবার খোলা সম্ভব নয়। [...]

এবং তারপরে প্রক্রিয়াটির সাথে সংযুক্ত করার জন্য জিডিবি ব্যবহার করুন, কিছু কল (0)
কল ক্লোজ (1)
কল ক্লোজ (2)
কল ওপেন ("/ dev / pts / xx", ...)
কল ডুপ (0) করুন
কল ডুপ (0)
বিচ্ছিন্ন করুন

এখন, আপনার অবস্থার জন্য আপনাকে এই প্রক্রিয়াটি টুইঙ্ক করতে হবে। আমি সন্দেহ করি আপনি যদি প্রক্রিয়াটি অস্বীকার না করে থাকেন তবে এটি সাহায্য করবে । আপনি ব্যবহার করেন, তাহলে bash, এই পোস্টটিকে দেখতে পারবেন তৈরীর সম্পর্কে ব্যাশ স্বয়ংক্রিয়ভাবে অস্বীকার প্রস্থানে ব্যাকগ্রাউন্ড প্রসেস (মূলত বন্ধ huponexit সঙ্গে shopt )। অগ্রভাগ প্রক্রিয়া সহ, আপনার নোহুপ ব্যবহার করা উচিত ।


1

সম্ভবত না. আমি গ্যারান্টি দিতে পারি না যে এটি অসম্ভব তবে আমি এটি সত্যই সন্দেহ করি।

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

তবে, ধরে নিন যে আপনি শুরু করেছিলেন ssh somehost nuhup vim /some/file এবং সংযোগটি মারা যায়। আপনি ssh somehostআবার লগ ইন করতে দৌড়ে যান এবং দেখতে পাবেন যে আপনার ভিম প্রক্রিয়া এখনও চলছে। তবে, কীভাবে আপনি আবার সেই প্রক্রিয়াটির সাথে সংযুক্ত হন? ইন্টারেক্টিভ ভোলাউন্ড প্রক্রিয়াগুলির একটি নিয়ন্ত্রণকারী টিটি থাকে এবং এটি আপনার ভিম প্রক্রিয়াটির জন্য যখন এটি শুরু হয় তখন থেকে এটি বন্ধ হয়ে যায়। আমি নিশ্চিত নই যে আপনার নতুন শেলের মধ্যে এটি আবার "পুনরায় খোলা" থাকার কোনও উপায় আছে কিনা (ঠিক যেমন একটি শেলটিতে আপনার বেশ কয়েকটি ব্যাকগ্রাউন্ড কাজ চলছে আপনি অন্য শেলের যে কোনওটিকে অগ্রভাগ করতে পারবেন না)।

Screenএই কার্যকারিতাটি স্পষ্টভাবে লেখা হয়েছে। শুরুতে এটি দুটি প্রক্রিয়া, একটি টার্মিনাল পরিচালনা প্রক্রিয়া এবং একটি ক্লায়েন্ট প্রক্রিয়া কাঁটাচামচ করে। মিথস্ক্রিয়াটি ক্লায়েন্ট <--> টার্মিনাল ম্যানেজার <--> অ্যাপ্লিকেশন এবং যখন আপনি সংযোগ বিচ্ছিন্ন বা হারিয়ে ফেলেন তখন টার্মিনাল ব্যবস্থাপক চলতে থাকা অবধি ক্লায়েন্ট প্রক্রিয়াটি মারা যায়। টার্মিনাল পরিচালনা প্রক্রিয়াটি পরে আবার সংযুক্ত করার জন্য স্ক্রিনের কিছু নির্দিষ্ট সমর্থন রয়েছে এবং আমি সাধারণ ক্ষেত্রে এটি সম্ভব বলে মনে করি না।


ধন্যবাদ। এটাই আমি প্রত্যাশা করেছিলাম। দেখা যাক যে কেউ আমাদের ভুল প্রমাণ করতে পারে কিনা। ;)
জন গার্ডেনিয়ার্স

এই উত্তরটি লেখার পরে আমি জানতে পেরেছি যে "রি-পাইটিং" প্রক্রিয়াগুলির জন্য একটি প্রোগ্রামের পুনরাধ্যার রয়েছে । তাত্ত্বিকভাবে তাই করণীয়, কিন্তু আমি এখনও সামগ্রিক উত্তর সম্ভবত না বলে মনে করি।
hlovdal

1

retty আপনাকে সাহায্য করতে সক্ষম হতে পারে, তবে অস্বীকারকারীরা খুব বাস্তব এবং প্রাসঙ্গিক :)


1

যদি সেশনটি বাদ দেওয়া হয়, এর অর্থ টিটিএল ইতিমধ্যে শেষ হয়ে গেছে, সুতরাং আপনার পক্ষে আর কোনও টিটিআই নেই (যেমন আমি এটি বুঝতে পারি)। তবে, যদি আপনার নেটওয়ার্ক সংযোগ বিঘ্নিত হয় তবে আপনার এসএসএইচ অধিবেশনটি নেমে যাওয়ার দরকার নেই এবং আপনার সংযোগটি পুনরায় শুরু করতে এবং চালিয়ে যেতে সক্ষম হওয়া উচিত। আপনি কি এই বিষয়ে জিজ্ঞাসা করছেন?


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

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

0

এই প্রশ্নের মধ্যে কিছু হ্যাকি টিটিআই চুরি কোডের একটি লিঙ্ক ছিল । কোনও নোহুপ প্রক্রিয়া নিয়ন্ত্রণ ফিরে পেতে আপনার তাত্ত্বিকভাবে এটি ব্যবহার করতে সক্ষম হওয়া উচিত।


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