বিদ্যমান স্ক্রিন সেশনে পুনরায় যোগ করা হচ্ছে


81

আমার পর্দার অধীনে একটি প্রোগ্রাম চলছে। প্রকৃতপক্ষে, আমি যখন সেশন থেকে বিচ্ছিন্ন হয়ে নেটস্পট পরীক্ষা করি তখন দেখতে পাচ্ছি যে প্রোগ্রামটি এখনও চলছে (যা আমি চাই):

udp        0      0 127.0.0.1:1720          0.0.0.0:*                           3759/ruby       

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

$ screen -r
There are several suitable screens on:
    5169.pts-2.teamviggy    (05/31/2013 09:30:28 PM)    (Detached)
    4872.pts-2.teamviggy    (05/31/2013 09:25:30 PM)    (Detached)
    4572.pts-2.teamviggy    (05/31/2013 09:07:17 PM)    (Detached)
    4073.pts-2.teamviggy    (05/31/2013 08:50:54 PM)    (Detached)
    3600.pts-2.teamviggy    (05/31/2013 08:40:14 PM)    (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.

তবে আমি কীভাবে জানতে পারি যেটি তৈরি করেছি সেই প্রক্রিয়াটি আমি যে প্রক্রিয়াটি তৈরি করেছি?

এখন আমি যে নথিগুলি পেলাম তার মধ্যে একটি বলেছিল:

"আপনি যখন উইন্ডোটি ব্যবহার করছেন, নাম দেওয়ার জন্য Ca এ টাইপ করুন This এই নামটি উইন্ডো তালিকায় ব্যবহৃত হবে এবং আপনি যখন অনেকগুলি উইন্ডো ব্যবহার শুরু করেন তখন প্রতিটি উইন্ডোতে আপনি কী করছেন তা মনে রাখতে সহায়তা করবে। "

জিনিসটি যখন আমি একটি নতুন স্ক্রিন সেশনে থাকি, তখন আমি কন্ট্রোল + এ এ চাপার চেষ্টা করি এবং কিছুই ঘটে না।


একাধিক ওপেন স্ক্রিনের তালিকা থেকে একটি নির্বাচন করার দ্রুত উপায় , screen -rতারপরে স্ক্রিনের তালিকার 1 নম্বর, 2, 3 ... অনুসরণ করা হবে ।
ব্যবহারকারী18099

উত্তর:


91

এখানে দুটি স্তরের "তালিকা" জড়িত রয়েছে। প্রথমত, আপনার একটি পৃথক সেশনের মধ্যে "উইন্ডো তালিকা" রয়েছে, যা সিটিআরএল-এ এর জন্য এবং দ্বিতীয়টি একটি "সেশন তালিকা" যা আপনি আপনার প্রশ্নে আটকে দিয়েছেন এবং কী কী দিয়ে দেখা যেতে পারে screen -ls

আপনি -Sপ্যারামিটার দিয়ে সেশন নামগুলি কাস্টমাইজ করতে পারেন , অন্যথায় এটি আপনার হোস্টনাম (টিমভিগি) ব্যবহার করে, উদাহরণস্বরূপ:

$ screen

(সিটিআরএল-এ ডি আলাদা করতে)

$ screen -S myprogramrunningunderscreen

(সিটিআরএল-এ ডি আলাদা করতে)

$ screen -ls

There are screens on:
    4964.myprogramrunningunderscreen    (05/31/2013 09:42:29 PM)    (Detached)
    4874.pts-1.creeper  (05/31/2013 09:39:12 PM)    (Detached)
2 Sockets in /var/run/screen/S-paul.

বোনাস হিসাবে, আপনি -Sপুনরায় সংযোগ করতে আপনার পরে যে নামেরটি পাস করেছেন তার একটি দ্ব্যর্থহীন সংক্ষেপণ ব্যবহার করতে পারেন :

screen -r myprog

(আমি myprogramrunningunderscreenঅধিবেশনটিতে পুনরায় সংযুক্ত হয়েছি )


সেই সিটিআরএল + আ আপনার জন্য কাজ করে? আমি একই সময়ে নিয়ন্ত্রণ + এ টিপুন এবং তারপরে আবার একটি চাপুন এবং কিছুই ঘটে না।
জনমারলিনো

হ্যাঁ; ctrl-A aএবং মধ্যে পার্থক্য আছে ctrl-A shift-A। দ্বিতীয়টি আমাকে অনুরোধ করেছিল Set window's title to:। নিশ্চিত হয়ে নিন যে আপনি দ্বিতীয় এটির জন্য শিফট
পল

আমি এটি করি: "স্ক্রিন -১১ 21tweet" এবং তিরস্কার হিসাবে পান: "এখানে একটি পর্দা রয়েছে: 3239.21tweet (08/21/2015 09:14:35 পূর্বাহ্ন) (সংযুক্ত) 21tweet এর সাথে ম্যাচ পুনরায় শুরু করার মতো কোনও পর্দা নেই" " এটা কি হতে পারে?
মাইকেল

নামকরণের স্ক্রিন অধিবেশনগুলির সাথে একটি অত্যন্ত স্পষ্টত সতর্কতা হ'ল আপনি যদি নামটি দিয়ে থাকেন -Sতবে স্বয়ংক্রিয়ভাবে পৃথক হয়ে পুনরায় শুরু করার সময় আপনাকে আইডি নম্বর এবং ডটটি অনুসরণ করে নামের সংক্ষিপ্ত সংক্ষিপ্তসারটি ব্যবহার করতে হবে, উত্পন্ন সেশন নাম, যেখানে আপনি আইডি এবং ডট অন্তর্ভুক্ত করতে পারেন।
স্পেন্সার উইলিয়ামস

1
টাইপো, স্থির এবং এই সাইটটি আমাকে কোনও অতিরিক্ত পাঠ্য ছাড়াই একটি মন্তব্য পোস্ট করতে দেবে না।
পল

37

আমার একটি মামলা ছিল যেখানে screen -rপুনরায় সংযোগ দিতে ব্যর্থ হয়েছিল। যোগ করা হচ্ছে -d, যাতে এটা ভালো লাগছিল পতাকা

screen -d -r

আমার জন্য কাজ। এটি পূর্ববর্তী স্ক্রিনটি বিচ্ছিন্ন করে এবং আমাকে আবার সংযুক্ত করার অনুমতি দেয়। আরও তথ্যের জন্য ম্যান পৃষ্ঠা দেখুন।


12

একটি সহজ উপায় হ'ল একটি স্বেচ্ছাসেবী পর্দার সাথে সহজেই সংযোগ স্থাপন করা

screen -r

তারপরে আপনি একবার স্ক্রিন চালাচ্ছেন, আপনি আঘাত করে সমস্ত সক্রিয় পর্দার একটি তালিকা পেতে পারেন Ctrl-A "(অর্থাত্ নিয়ন্ত্রণ-এ ডাবল উদ্ধৃতি অনুসারে)। তারপরে আপনি একবারে সক্রিয় পর্দাটি একবারে নির্বাচন করতে পারেন এবং তারা কী চলছে তা দেখতে পারেন। পর্দার নামকরণ অবশ্যই, সঠিকটি সনাক্তকরণ সহজ করবে।

শুধু আমার দুই সেন্ট


ঠিক আছে কিভাবে আমি আমার পর্দার নাম?
অস্ট্রিন

@ অস্টিন স্ক্রিন-এস <অনুগ্রহ নাম>
ব্রায়ান

4

আমি নিম্নলিখিত কম্বো ব্যবহার করি যেখানে বেশ কয়েকটি ক্লাস্টারে বেশ কয়েকটি মেশিনে আমার কাজ করা দরকার:

screen -S clusterX

এটি নতুন স্ক্রিন সেশন তৈরি করে যেখানে আমি পরিবেশ তৈরি করতে পারি।

screen -dRR clusterX

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

Https://support.dvsus.com/hc/en-us/articles/212925186-Linux-GNU-Screen-instructions এ কিছুক্ষণ পিছনে এই টিপটির জন্য ।

সম্পাদনা করুন:

man screenক্রিপ্টিক পরামিতিগুলি থেকে কিছু দরকারী ব্যাখ্যা এখানে

       -d -r   Reattach a session and if necessary detach it first.

       -d -R   Reattach a session and if necessary detach or  even  create  it
               first.

       -d -RR  Reattach  a  session  and if necessary detach or create it. Use
               the first session if more than one session is available.

       -D -r   Reattach a session. If necessary  detach  and  logout  remotely
               first.

আরও কিছু আছে -Dতাই চেক করতে ভুলবেন নাman screen


2

এর আউটপুট screen -listযেমন ফর্ম্যাট করা হয় pid.tty.host। পিডগুলি প্রথম সন্তানের প্রক্রিয়াটি এর সাথে পেতে ব্যবহার করা যেতে পারে pstree:

screen -list|cut -f1 -d'.'|cut -f2|xargs -n 1 pstree -p|grep "^screen"

আপনি এই মত একটি তালিকা পাবেন

screen(5169)---zsh(5170)---less(15268)
screen(4872)---zsh(4873)-+-cat(11364)
...

1
screen -d -r 4964

অথবা

screen -d -r 4874

$ screen -ls
There are screens on:
4964.myprogramrunningunderscreen    (05/31/2013 09:42:29 PM)    (Detached)
4874.pts-1.creeper  (05/31/2013 09:39:12 PM)    (Detached)
2 Sockets in /var/run/screen/S-paul.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.