একটি পর্দা হত্যা (কিন্তু সমস্ত পর্দা নয়)


19

আমার উবুন্টু সার্ভারে একাধিক স্ক্রিন চলছে যা এই হিসাবে শুরু করা হয়েছে:

screen -dmS screen1 cmd
screen -dmS screen2 cmd
etc...

এবং আমি একটি পর্দা হত্যা করতে হবে, কিন্তু তাদের সব না। একটি নির্দিষ্ট পর্দার নাম দিয়ে হত্যা করার সঠিক আদেশটি কী? আমি ম্যান পেজগুলি পড়েছি তবে আমি যে কমান্ডটি সন্ধান করছি তা খুঁজে পাচ্ছি না।

এছাড়াও আমি এই কমান্ডটি বাশ স্ক্রিপ্টে লিখতে চাই যাতে আমি কেবল screen -r screen1তখনই Ctrl+ চাপতে পারি না Xযা আমি সাধারণত করি।


দুঃখিত, ভেবেছিলেন এটি এক সেকেন্ডের জন্য গাধা কং সম্পর্কে
চম্পার3


এটি একটি দুর্দান্ত টি, বেশিরভাগ লোকেরা আপনাকে তা পাবেন না, যদি না তারা "কং এর কিং" দেখেন: imdb.com/title/tt0923752
বাসকোজ

একটি বাক্যাংশের অবজেক্টের সঠিক শব্দটি হ'ল "তুমি"।
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

3
আপনি এখানে "এটি পান" এবং নীচে "আপনাকে ধন্যবাদ" বলেছিলেন। এটি হওয়া উচিত "আপনার জন্য এটি পান" এবং "আপনাকে ধন্যবাদ জানাই"।
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

উত্তর:


19

ম্যান পৃষ্ঠা থেকে:

   -X   Send the specified command to a running screen  session.  You  can
        use  the  -d or -r option to tell screen to look only for attached
        or detached screen sessions. Note that this command  doesn't  work
        if the session is password protected.

আপনি করতে পারেন :

        screen -X -S <sessionid> kill

নিখুঁত !!! ধন্যবাদ ডিফ্র্যাগ, মুস্তা লোকটির মধ্যে তা মিস করেছে missed
বাসকোজ

জেনে রাখা ভাল :-)
ফিন্ক

9

যদি আপনি এটি করেন তবে আপনি screen -listলক্ষ্য করবেন যে প্রতিটি পর্দার নাম একটি সংখ্যার সাথে শুরু হয়, যা পর্দার পিআইডি হয়:

 $ screen -list
There are screens on:
        12281.pts-1.jonah       (12/21/2009 07:53:19 PM)        (Attached)
        10455.pts-1.jonah       (12/19/2009 10:55:25 AM)        (Detached)
2 Sockets in /var/run/screen/S-raphink.

সেখান থেকে, এই নির্দিষ্ট পিআইডিতে কেবল একটি কিল সিগন্যাল প্রেরণ করুন:

$ kill 12281

এবং এটি নির্দিষ্ট স্ক্রিনটিকে হত্যা করবে।


এটি কাজ করবে না কারণ আমি এটিকে ব্যাশ স্ক্রিপ্ট থেকে চালাচ্ছি, এবং আমাকে স্ক্রিন-তালিকা থেকে পিআইডি টানতে হবে না যা সঠিক স্ক্রিনের সাথে মেলে ... উপরের ডিফ্রাগের উত্তরটি কবজির মতো কাজ করেছে। ধন্যবাদ
বাসকোজ

ঠিক আছে, ভাল যে ডিফ্র্যাগের জন্য এটির জন্য একটি সঠিক সমাধান ছিল।
0aphink

1

ডিফ্র্যাগের সমাধান আমার পক্ষে কাজ করে না, তবে আমি রাফিংকের ধারণাটি ব্যবহার করে স্ক্রিন সেশনটি মেরে ফেলতে পারি:

স্ক্রিন-তালিকাটি প্রক্রিয়া আইডি পান

হত্যা -9 প্রসেসিড

স্ক্রিন-ওয়াইপ SESSIONID


1

যদি একই নামের সাথে বেশ কয়েকটি স্ক্রিন থাকে তবে আপনি সেগুলি একবারে হত্যা করতে পারেন:

screen -ls  | egrep "^\s*[0-9]+.ScreenName" | awk -F "." '{print $1}' | xargs kill
  • কমান্ড screen -lsতাদের প্রক্রিয়া নম্বর সহ স্ক্রিন প্রিন্ট করে। উদাহরণস্বরূপ, 4773.est প্রক্রিয়া নম্বর 4773 এবং নাম পরীক্ষা সহ একটি স্ক্রিন । নমুনা আউটপুট:

    6322.ss      (05/23/2018 10:39:08 AM)        (Detached)
    6305.sc  (05/23/2018 10:38:40 AM)        (Detached)
    6265.ScreenName       (05/23/2018 10:37:59 AM)        (Detached)
    6249.ScreenName  (05/23/2018 10:37:50 AM)        (Detached)
    6236.scc        (05/23/2018 10:37:42 AM)        (Detached)
    
  • কমান্ড egrepনমুনা টেক্সট উপরে ফিল্টার পাইপ লাইন মাধ্যমে পাঠানো |

  • কমান্ড awk -F "." '{print $1}'প্রতিটি লাইনের প্রথম কলামটি বের করে। কলামগুলির মধ্যে ডিলিমিটারটি বিকল্প -F দ্বারা বিন্দু (।) হিসাবে সংজ্ঞায়িত করা হয়
  • অবশেষে কমান্ড xargs killসমস্ত প্রক্রিয়া শেষ করে দেবে যার পাইপের মাধ্যমে নম্বর প্রেরণ করা হয়েছে | xargsযখন আমরা প্রতিটি ইনপুটগুলিতে একটি কমান্ড চালাতে চাই তা ব্যবহৃত হয়।

0

আপনি একটি নতুন উইন্ডো খুলুন

Ctrl A + C

আপনি একটি উইন্ডো দিয়ে বন্ধ করুন

Ctrl + D

বা উইন্ডোতে প্রস্থান কমান্ড


0

Ive নিম্নলিখিত হিসাবে এটি নিয়ে ডিল করা হয়েছে:

process=$(screen -ls | grep screen1)
kill $(echo $process | cut -f1 -d'.')
exit

ব্যাখ্যাটি হ'ল আপনি আউটপুট গ্রহণ করেন screen -lsএবং সেই বিশেষ স্ক্রিনটি খুঁজে পেতে চান যা আপনি গ্রেপ ব্যবহার করে আগ্রহী হন তারপরে সেই স্ট্রিংটি ভেরিয়েবলের জন্য বরাদ্দ করুন process

যেহেতু আউটপুট screen -lsসর্বদা পিআইডি হয় তার পরে পিরিয়ড হয় তারপরে আপনি পিরিয়ড এবং তার পরে সমস্ত কিছু থেকে মুক্তি পেতে কাট ব্যবহার করতে পারেন। উপরের উদাহরণে আমরা এটি বন্ধনীতে রেখেছি এবং এটি কিল কমান্ডে ফিড করে দিলেও আপনি এটি রৈখিকভাবে করতে পারতেন যার মধ্যে কোনও টেম্পল ফাইলটিতে লেখা এবং এর বাইরে পড়া অন্তর্ভুক্ত থাকতে পারে।

আপনাকে অবশ্যই নিশ্চিত করতে হবে যে আপনার পর্দার নামটি অনন্য এবং গ্রেপ কেবলমাত্র যে পর্দাটি আপনি হত্যা করতে চান তার নামটি ফিরিয়ে দিচ্ছে।

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