পুনরায় শুরু করতে আলাদা পর্দা পেতে পারি না


11

আমি পুট্টি ব্যবহার করি এবং একটি অবিশ্বাস্য ওয়্যারলেস সংযোগ পাই, তাই আমি আমার কাজ চালিয়ে যেতে স্ক্রিন ব্যবহার করি। প্রায়শই আমি সংযোগ বিচ্ছিন্ন হয়ে যাব এবং তারপরে আমি আমার স্ক্রিনটি পুনরায় সংযুক্ত করতে পারি না। আমি দৌড়ে যাব screen -D -RRএবং এটি কেবল সেখানে অনির্দিষ্টকালের জন্য বসে থাকবে। আমি ctrl+zআমার কনসোলটি ফিরে পাওয়ার চেষ্টা করেছি , তারপরে ps aux | grep screenএবং তারপরে kill -9সমস্ত ফলাফলের জন্য এবং তারপরে screen -D -RRআবারও আমি একই ফলাফল পেয়েছি। আপনার উল্লেখ করার মতো যত্ন নিয়ে ডি এবং র এর যে কোনও সংমিশ্রণ চেষ্টা করে দেখি, তবে এখনও এটি সেখানে বসে আছে। আমার স্ক্রিনটি আছে, এটি কিছু করবে না, অন্তত সমস্ত জীবনবৃত্তান্ত।

আমার স্ক্রিন সেশনটি পুনরায় শুরু করতে কীভাবে কারও কাছে কোনও টিপস বা কৌশল বা ধারণা রয়েছে?

উত্তর:


16

আমি এটিকে দেখেছি যখন আমি একটি সক্রিয় স্ক্রিনে কোনও সংযোগ ফেলে দিই তখন পুনরায় সংযোগ স্থাপন করি। বাগ # 27462 ("আসল সেশনটি হারিয়ে যাওয়ার পরে স্টলগুলি পুনরায় সংযুক্ত করুন") সমস্যাটি আমি যেমন দেখছি তত বর্ণনা করে। যা ঘটতে দেখা যাচ্ছে তা হল স্ক্রিনটি যে টিটিটি ছেড়ে চলেছে তার বিষয়টি অবহিত করার চেষ্টা করছে, কিন্তু যেহেতু টিটিটি একটি সংযোগের কারণে ঝুলিয়ে দেওয়া হয়েছে তাই সময়সীমাটি হওয়ার জন্য অপেক্ষা করতে হবে (যা পাঁচ মিনিটের উপরে রয়েছে) কিছু ক্ষেত্রে)।

এটি ঠিক করার জন্য, আমি এটি করছি:

  • টিটিটি স্ক্রিন সেশনটিতে কী ধরে আছে তা নির্ধারণ করুন ps -ef | grep screen | grep pty
  • সেই টিটিটির সাথে সম্পর্কিত লগইন ব্যাশটি সন্ধান করুন ps -ef | grep bash | grep $PTY
  • বাশ মেরে ফেল kill -KILL $PID

এটি স্ক্রিনটিকে সঠিকভাবে সংযোগ বিচ্ছিন্ন করতে দেয় এবং আপনাকে সাধারণত পুনরায় সংযোগ করতে দেয়।

এটিকে কিছুটা স্বয়ংক্রিয় করার জন্য উদাহরণ স্ক্রিপ্টের জন্য এখানে দেখুন


PS -ef | গ্রেপ স্ক্রিন | grep tty কখনই কোনও কিছু প্রিন্ট করে না কারণ PS -ef | গ্রেপ স্ক্রিন টিআরটি tty দিয়ে কখনই কিছু দেয় না।
ডেভ অ্যারন স্মিথ

আসলে উদাহরণ স্ক্রিপ্টটি কৌশলটি মনে হচ্ছে to ধন্যবাদ!
ডেভ অ্যারন স্মিথ

1
হ্যাঁ, আমার অর্থ 'পিটিআই' ছিল, 'টিটিআই' নয় not
ডেভিড ম্যাকিনটোস

2

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

screen -x <session_name>

এটি চ্যাম্পের মতো কাজ করেছিল!


1

আমি বলতে পারি না যে আমি যে ধরণের সংযোগ করছি তা নিয়ে পর্দা ফিরে না আসার ক্ষেত্রে আমার কখনও সমস্যা হয়েছিল। আমার স্বাভাবিক পদ্ধতি:

ssh myname@foo
screen -S sessionName
(do my work... get disconnected...)

ssh myname@foo
screen -d (just to make sure anything wasn't left attached)
screen -r sessionName

1
উদাহরণস্বরূপ স্ক্রীন-তালিকা 32322.mySession প্রদান করে (সংযুক্ত)। তারপরে আমি আমার সেশন স্ক্রিন করি। তারপরে স্ক্রীন-তালিকাটি এখনও 32322.mySession (সংযুক্ত), এবং স্ক্রিন-মাই সেশন রিটার্ন দেয় তবে ডেভসেশনটির সাথে ম্যাচ পুনরায় শুরু করার মতো কোনও পর্দা নেই।
ডেভ অ্যারন স্মিথ

আপনি কি "স্ক্রিন-ডি" চেষ্টা করেছিলেন?
জেসন আন্তম্যান

0

এই বাগটি আপনাকে প্রভাবিত করছে এমনটা কি সম্ভব?

http://savannah.gnu.org/bugs/?27462

আপনি যে সুপারিশ করেছেন তা ঠিক করার চেষ্টা করে দেখতে পারেন এবং এটি কাজ করে কিনা?


কর্মক্ষেত্রটি আমার কাছে খুব একটা বোঝায় না। আমার পিএস-শেফ | গ্রেপ স্ক্রিনের আউটপুটটি উদাহরণের মতো দেখায় না।
ডেভ অ্যারন স্মিথ

0

সোলার্স: https://kb.iu.edu/data/ahrm.html

To see your existing screen sessions, enter:
  screen -list
This will display a list of your current screen sessions. For instance, if you had one attached screen, you would see:

         1636.pts-21.hostname      (Attached)

To detach an attached screen, enter:
  screen -D
If you have more than one attached screen, you can specify a particular screen to detach. For example, to detach the screen in the above example, you would enter:
  screen -D 1636.pts-21.hostname

0

আপনি যদি আমার মতো স্মার্ট হন তবে আপনি rootনিয়মিত ব্যবহারকারীর অ্যাকাউন্টের মতো শুরু হওয়া স্ক্রিন সেশনটি আবার শুরু করার চেষ্টা করছিলেন । ls /var/run/screenআমাকে এর জন্য একটি ডিরেক্টরি দেখিয়ে এটি খুঁজে পেলroot


0

আমার মাঝে মাঝে একই সমস্যা হয় (স্ক্রীন-ডি-পুনরায় শুরু হচ্ছে না, প্রতিক্রিয়াশীল নয়)। ঠিক করতে, স্ক্রিন সেশনের সাথে সম্পর্কিত টার্মিনাল (tty / pty) সন্ধান করুন:

screen -list
There is a screen on:
    28176.pts-51.localhost        (Attached)
1 Socket in /tmp/uscreens/S-xxxx.

টার্মিনালটি তালিকাভুক্ত করুন (উদাহরণস্বরূপ pts-51):

ps axuw | grep 'pts/51'   # will vary depending upon how pty's are named
you     12293  0.0  0.2  2148 1128 pts/51   Ss   10:34   0:00 -bash

সেই টার্মিনালটিতে প্রক্রিয়াগুলি (সাধারণত আপনার শেল) হত্যা করুন:

kill 12293

এটি চলে গেছে তা নিশ্চিত করতে আবার পিএস চালান। যদি না :

kill -9 12293

আমার সার্ভারে (gnu / linux), কখনও কখনও এটি মারা না যাওয়া পর্যন্ত আমাকে বেশ কয়েকবার -9 মেরে ফেলতে হবে।

এই টিটিটির সমস্ত প্রক্রিয়া শেষ হয়ে যাওয়ার পরে, পর্দাটি সঠিকভাবে পুনরায় শুরু হওয়া উচিত:

screen -r -d

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