আমি দুর্ঘটনাক্রমে 1000 টিরও বেশি স্ক্রিন তৈরি করেছি। আমি কীভাবে তাদের এক আদেশ দিয়ে হত্যা করব? (বা কয়েকটি)
screen -ls | grep "<name>" | cut -d. -f1 | tr --delete "\t" | xargs kill -9; screen -wipe; screen -ls;
আমি দুর্ঘটনাক্রমে 1000 টিরও বেশি স্ক্রিন তৈরি করেছি। আমি কীভাবে তাদের এক আদেশ দিয়ে হত্যা করব? (বা কয়েকটি)
screen -ls | grep "<name>" | cut -d. -f1 | tr --delete "\t" | xargs kill -9; screen -wipe; screen -ls;
উত্তর:
তুমি ব্যবহার করতে পার :
pkill screen
অথবা
killall screen
ওএসএক্সে প্রক্রিয়াটিকে সমস্ত ক্যাপগুলিতে SCREEN বলা হয়। সুতরাং, ব্যবহার করুন:
pkill SCREEN
অথবা
killall SCREEN
Top
সম্প্রতি আমি এটিকে একসাথে রেখে আমার সাথে পরিচিত হতে শুরু করেছি এবং এটি এর উদ্দেশ্য হিসাবে কাজ করেছে। আমি এটি পোস্ট করার পরে এটি বোঝা বেশ সহজ।
screen -ls | grep '(Detached)' | awk 'sys {screen -S $1 -X quit}'
যেখানে screen -ls
সমস্ত বর্তমান পর্দার তালিকা রয়েছে।
grep 'pattern'
সমস্ত মিলে যাওয়া সারিগুলি ফিল্টার করে। তারপরে আমরা সমস্ত বিচ্ছিন্ন স্ক্রিনগুলির জন্য একটি হ্যান্ডেল পেতে পারি এবং awk sys {command}
আমরা কোনও কমান্ড একসঙ্গে অনুলিপি করে পেস্ট করতে পারি এবং এটি দিয়ে কার্যকর করতে পারি sys
, এটি $1
অর্ক দ্বারা উত্থাপিত প্রথম যুক্তিকে বোঝায়। অবশেষে আমরা সঙ্গে প্রস্থান কমান্ড প্রয়োগ screen -X quit
।
screen -ls | grep '(Detached)' | awk '{print $1}' | xargs -I % -t screen -X -S % quit
আমার জন্য আরও ভাল কাজ
আপনি কীভাবে 1000 "স্ক্রিন" তৈরি করতে সক্ষম হয়েছেন তা নিয়ে আমি কিছুটা বিস্মিত। আপনি সম্ভবত 1000 স্ক্রিন উইন্ডোজ (একক স্ক্রিন সেশনের মধ্যে 1000 টি বিভিন্ন টার্মিনাল উইন্ডোজ) বোঝাতে চেয়েছিলেন?
আপনি যদি একটি একক স্ক্রিন সেশনের মধ্যে 1000 উইন্ডোজ বোঝাতে চান, তবে আরও একটি মার্জিত সমাধান হ'ল কমান্ডটি ব্যবহার করে পর্দা C-a \
ছাড়ুন (ctrl-a এর পরে \)।
screen -m sleep 100000
। এটি ঘটেছে এবং এটি ইতিমধ্যে 1000 এরও বেশি স্ক্রিন সেশন তৈরি না হওয়া পর্যন্ত আমি লক্ষ্য করি না।
for scr in $(screen -ls | awk '{print $1}'); do screen -S $scr -X kill; done
screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}' | xargs kill