বিচ্ছিন্ন স্ক্রিন সেশন হত্যা করুন [বন্ধ]


864

আমি কোথাও থেকে শিখেছি একটি বিচ্ছিন্ন স্ক্রিন দ্বারা হত্যা করা যেতে পারে

screen -X -S [session # you want to kill] kill

যেখানে [সেশন # আপনি হত্যা করতে চান] সেখান থেকে পাওয়া যাবে

screen -ls

তবে এটি কাজ করে না। কোন সমস্যা? সঠিক উপায় কি?


25
"কোথাও" সর্বদা তথ্যের উত্স নয়। "ম্যান স্ক্রিন" চেষ্টা করুন।
innaM

27
সঠিক কমান্ডscreen -S sessionname -p 0 -X quit
jimmetry

কিল্লাল - # স্ক্রিন [# = আপনি হত্যা করতে চান এমন পর্দার সংখ্যা]
ক্যারনল্ড

আমি কেবল প্রস্থান করি
টিপিআররো

স্ক্রিনে থাকা সিটিআরএল + ডি হ'ল সহজতম কমান্ড।
ডন কিং

উত্তর:


1267

"হত্যা" কেবল একটি পর্দার উইন্ডোটিকে মেরে ফেলবে। সম্পূর্ণ সেশনটি "হত্যা" করতে, ব্যবহার করুন quit

উদাহরণ

$ screen -X -S [session # you want to kill] quit

মৃত সেশনগুলির জন্য ব্যবহার করুন: $ স্ক্রীন-ওয়াইপ


112
উবুন্টুতে 'প্রস্থান' (উদ্ধৃতিগুলি ছাড়াই) টাইপ করুন: পি
মিজালাজার

16
exitকাজ করে তবে খোলার প্রতিটি স্ক্রিনে টাইপ করা দরকার। quitএমনকি কাজ করে না
কাপাড

4
@ কেপ্যাড আসলে কাজগুলি ছেড়ে দিন যদি আপনি এটিকে ইনলাইন-এক্স-এস পিড / সোকনাম লিখেন
এডুয়ার্ড

20
ওএসএক্স- screen -X quitএ কোনও টার্মিনালে প্রবেশ করে সমস্ত সক্রিয় অধিবেশন সমাপ্ত হয়
মিশেল

5
Ctrl + D এছাড়াও কাজ করে
ই জিন

499

আপনি কোনও বিচ্ছিন্ন অধিবেশনটিকে হত্যা করতে পারেন যা নিম্নলিখিতটি করে পর্দার সেশনে সাড়া দিচ্ছে না।

  1. screen -listবিচ্ছিন্ন স্ক্রিন সেশনটি সনাক্ত করতে টাইপ করুন।

    $ $ স্ক্রিন-তালিকা  
        এখানে পর্দা রয়েছে:  
             20751. মেলভিন_পিটার_ভি 42 (বিচ্ছিন্ন)  
    

    দ্রষ্টব্য: 20751.Melvin_Peter_V42আপনার সেশন আইডি।

  2. বিচ্ছিন্ন স্ক্রিন সেশনে যুক্ত হন

    স্ক্রীন -r 20751. মেলভিন_পিটার_ভি 42
  3. একবার সেশনের সাথে সংযুক্ত হয়ে Ctrl+ Aটাইপ করুন:quit


20
পুরো নাম ছাড়াই আপনি কেবল পর্দা -r 20751 ব্যবহার করতে পারেন
গাল ব্রাচা

53
বা: Ctrl + a, k
laffuste

@laffuste এর মন্তব্যে আমার জন্য কাজ, কিন্তু quitএবং :quitহতে command not foundআমার দূরবর্তী লিনাক্স সার্ভারে (সম্ভবত OS বা পর্দার সংস্করণের মধ্যে পার্থক্য দায়ী করতে হয়)
হ্যাক-আর

একবার স্ক্রিনের সাথে সংযুক্ত exitহয়েও কাজ করে
পঙ্কজকবর

145

পর্দার তালিকা:

screen -list

আউটপুট:

There is a screen on:
23536.pts-0.wdzee       (10/04/2012 08:40:45 AM)        (Detached)
1 Socket in /var/run/screen/S-root.

স্ক্রিন সেশন কিল:

screen -S 23536 -X quit

1
'স্ক্রিন-এলএস'ও কাজ করে। ;)
অতুল বৈভব

113

কোনও অর্থবহ নাম দেওয়া হলে সেশনটি মেরে ফেলা সহজ:

//Creation:
screen -S some_name proc
// Kill detached session
screen -S some_name -X quit

কেন screen -Sএবং না screen -r?
43

1
এই উত্তরটি সেশনটির নাম ব্যবহার করে যা আইডিটি দেখার চেয়ে আরও সুবিধাজনক। ধন্যবাদ!
পল কেনজোরা

43

আপনি কেবল সেই জায়গায় যেতে পারেন যেখানে স্ক্রিন সেশনটি রাখা হয়েছে এবং চালিত হবে:

 screen -ls

ফলাফল যা

 There is a screen on:
         26727.pts-0.devxxx      (Attached)
 1 Socket in /tmp/uscreens/S-xxx. <------ this is where the session is.

এবং কেবল এটি সরিয়ে দিন:

  1. সিডি / টিএমপি / ইউএসক্রেন / এস-এক্সএক্সএক্সএক্সএক্স
  2. 26727.pts-0.devxxx
  3. rm 26727.pts-0.devxxx

uscreensডিরেক্টরি থাকবে না 26727.pts-0.devxxxআর এতে ফাইল। এখনই এটি টাইপ করুন তা নিশ্চিত করতে:

screen -ls

এবং আপনার পাওয়া উচিত:

/ Tmp / uscreens / S-xxx এ কোনও সকেট পাওয়া যায় নি।


4
এটিই একমাত্র সমাধান যা স্ক্রিনটি "আটকে" থাকলে, অর্থাৎ কাজ করবে। মৃত নয়, তবে জড়িত হতে পারে না।
পুনর্নির্বাচন করুন

স্ক্রিনটি পুরো লক হয়ে গেলে এটি আমাকে সহায়তা করেছিল, তবে আসল প্রক্রিয়াটিও খুঁজে বের করতে এবং হত্যা করার দরকার পড়েছিল। ps aux | grep screenপিডটি খুঁজে পেয়েছি এবং আমি killএটি সরাতে একটি জারি করেছি। আপনার স্ক্রিনে আপনি কী চালাচ্ছেন তার উপর নির্ভর করে আপনার পরিষ্কার করার জন্য অস্থায়ী ফাইল এবং লক থাকতে পারে।
লম্পকি

29
screen -wipe

সমস্ত মৃত স্ক্রিন সেশন পরিষ্কার করা উচিত ।


11
মৃত মানে কি? কোন প্রোগ্রাম চলছে না?
শিহাও জু

1
@ শিহক্সু ডেড মানে অধিবেশনটি অ্যাক্সেসযোগ্য এবং লোকালহোস্টে (সকেট সংযোগ বিচ্ছিন্ন হয়েছে)। - gnu.org/software/screen/manual/screen.html দেখুন
আইবাফ

23

এটি আপনার যুক্ত করুন ~/.bashrc:

alias cleanscreen="screen -ls | tail -n +2 | head -n -2 | awk '{print $1}'| xargs -I{} screen -S {} -X quit"

তারপরে cleanscreenসমস্ত স্ক্রিন সেশন পরিষ্কার করতে ব্যবহার করুন।


11
একটি সাধারণ screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}' | xargs kill
এরিয়েল

3
ট্রিট করেছেন, তবে ওএসএক্সে কাজ করার জন্য এটি কিছুটা সংশোধন করতে হয়েছিল: screen -ls | tail +2 | head -2 | awk '{print $1}'| xargs -I{} screen -S {} -X quit
জোনাথন

সামান্য উন্নতি: -স্ক্রিন-এলএস | গ্রেপ সংযুক্ত | কাটা-ডি। -ফ 1 | awk '{মুদ্রণ $ 1}' | xargs -I {} স্ক্রিন-ডি {}
অভয় যাদব

21

আমার জন্য একটি সহজ

exit

কাজ করে। এটি পর্দার সেশনের মধ্যে থেকে।


2
এছাড়াও, সিটিআরএল + এ:quit
নিক দেশালাউনিয়ার্স

2
এছাড়াও, সিটিআরএল + এ, তারপরে কে
নিক দেশালাইনিয়ার্স

বা একটি স্ক্রিনের মধ্যে কেবল সিটিআরএল + ডি
ফ্রেডেরিক উইট

16

সমস্ত বিচ্ছিন্ন স্ক্রিন সেশনগুলি মারতে , আপনার .bash_profile এ এই ফাংশনটি অন্তর্ভুক্ত করুন:

killd () {
for session in $(screen -ls | grep -o '[0-9]\{5\}')
do
screen -S "${session}" -X quit;
done
}

এটি চালাতে, কল করুন killd


5
কখনও কখনও এটি 5 ডিজিট নয়, তাই আমি ব্যবহার করি: কিল্ড () {সেশনের জন্য screen (স্ক্রিন-এলএস | গ্রেপ -o '[0-9] \ +') স্ক্রিন-এস "$ {সেশন}"-এক্স প্রস্থান; সম্পন্ন}
Kostyantyn

7
== ISSUE THIS COMMAND
[xxx@devxxx ~]$ screen -ls


== SCREEN RESPONDS
There are screens on:
        23487.pts-0.devxxx      (Detached)
        26727.pts-0.devxxx      (Attached)
2 Sockets in /tmp/uscreens/S-xxx.


== NOW KILL THE ONE YOU DONT WANT
[xxx@devxxx ~]$ screen -X -S 23487.pts-0.devxxx kill


== WANT PROOF?
[xxx@devxxx ~]$ screen -ls
There is a screen on:
        26727.pts-0.devxxx      (Attached)
1 Socket in /tmp/uscreens/S-xxx.

এটি কি কেবল সকেটটি সরিয়ে ফেলবে না, এর পিছনে প্রক্রিয়াটি মেরে ফেলবে না?
মার্টিন সি

এই পদ্ধতিটি জম্বি প্রক্রিয়া তৈরির দৃষ্টিকোণ থেকে ঝুঁকিপূর্ণ?
ফেদির RYKHTIK

5

বিকল্পভাবে, আপনার স্ক্রিন সেশনের সময় আপনাকে যা করতে হবে তা হ'ল প্রস্থান টাইপ

এটি স্ক্রিন দ্বারা শুরু করা শেল সেশনটি হত্যা করবে, এটি কার্যকরভাবে আপনার চালু স্ক্রিন সেশনটি সমাপ্ত করে।

স্ক্রিন সেশন আইডি ইত্যাদি নিয়ে বিরক্ত করার দরকার নেই

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