বাইবু স্ক্রিন সেশনে সংযুক্ত হয়ে কমান্ড চালাবেন?


9

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

সুতরাং আমি স্পষ্ট জায়গায় শুরু করেছিলাম, কতগুলি স্ক্রিন সেশন রয়েছে তা দেখে (গেমটির 3 টি উইন্ডো রয়েছে বাইবুতে এবং লর্ডক্যাকস্টারের 2 টি রয়েছে The ব্যবহারকারীরা পৃথক পুটি উদাহরণগুলিতে রয়েছে)

game@quackgame:~$ screen -ls
There is a screen on:
        2019.byobu      (01/05/2011 05:10:04 PM)        (Attached)
1 Socket in /var/run/screen/S-game.

সেখানে কেবল একটি, তাই আমি সিস্টেমটি পরীক্ষা করেছিলাম

lordquackstar@quackgame:/home/game$ sudo ls -lAR /var/run/screen/
/var/run/screen/:
total 0
drwx------ 2 game          users         100 2011-01-06 09:18 S-game
drwx------ 2 lordquackstar lordquackstar 100 2011-01-06 09:17 S-lordquackstar

/var/run/screen/S-game:
total 4
prwx------ 1 game users 0 2011-01-08 07:55 2019.byobu
-rw------- 1 game users 0 2011-01-06 09:18 byobu-exchange
-rw-r--r-- 1 game users 3 2011-01-08 07:32 byobu.updates-available

/var/run/screen/S-lordquackstar:
total 4
prwx------ 1 lordquackstar lordquackstar 0 2011-01-08 07:42 1169.byobu
-rw------- 1 lordquackstar lordquackstar 0 2011-01-06 09:17 byobu-exchange
-rw-r--r-- 1 lordquackstar lordquackstar 3 2011-01-08 07:35 byobu.updates-available

এখনও একাধিক স্ক্রিন নেই

সুতরাং আমার প্রশ্নের জন্য: আমি কীভাবে কোনও স্ক্রিপ্ট থেকে বাইবুয় একটি উইন্ডোতে সংযোগ করতে পারি?


কিছুটা সম্পর্কিত নোটের উপরে, আমি একবার এটি কোনও ব্যাশ স্ক্রিপ্ট থেকে সংযুক্ত করলে, এটি কমান্ড পাঠানোর কোনও উপায় আছে কি তবে আলাদা?


দেখে মনে হচ্ছে প্রতিটি ব্যবহারকারীর একক স্ক্রিন সেশন রয়েছে। আমি বাইবুর সাথে পরিচিত নই, কেন আপনি মনে করেন পাঁচটি স্ক্রিন সেশন রয়েছে?
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

@ গিলস আরও গবেষণায় জানা গেছে যে প্রতিটি ব্যবহারকারীর জন্য কেবল একটি স্ক্রিন সেশন রয়েছে। আমি তাদের ভেবেছিলাম যেখানে আরও htopএকাধিক স্ক্রিন প্রক্রিয়া দেখানো হয়েছে
TheLQ

উত্তর:


7

আপনি উইন্ডো সহ পূর্ববর্তী বিচ্ছিন্ন byobu/ screenসেশনে সরাসরি সংযুক্ত করতে পারেন :

byobu -r -p2

উইন্ডো 2 এ পুনরায় সংযুক্ত হবে (বা একটি নামযুক্ত)।

-Xকোনও সেশন byobu/ screenসেশনে কোনও কমান্ড প্রেরণ করতে পারে এবং -pস্যুইচটির সাথেও কাজ করে ।

byobu -p2 -X stuff "uname -a $(echo -ne '\r')"

এটি uname -aদ্বিতীয় (তৃতীয় প্রকৃতপক্ষে) বাইবু উইন্ডোতে echoএকটি প্রেরণ করবে, শেষে একটি ক্যারিজ রিটার্ন প্রেরণ করবে যাতে আদেশগুলি কার্যকর হবে।


স্ট্রিং-এ স্ট্রিংয়ের শেষে আপনি কেবল একটি নিউলাইন অন্তর্ভুক্ত করতে পারেন।
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'

কি "স্টাফ"? এটি অপসারণ করলে বাইবুতে ত্রুটিটি পাওয়া যায় "-X অজানা কমান্ড 'uanme -a'
TheLQ

এটি যা বলে তা এটি করে, এটি অধিবেশনটিকে (এই ক্ষেত্রে uname -a) কমান্ড "স্টাফ" করে byobu
ওয়াগ

আহ, সংযোগটি সেখানে তৈরি করেনি। যাইহোক, সহায়তার জন্য ধন্যবাদ, এটি নিখুঁতভাবে কাজ করে!
TheLQ

স্টাফ কমান্ডটি শুধুমাত্র জিএনইউ স্ক্রিনের সাথে কাজ করবে বলে মনে হচ্ছে, টিএমউक्स নয়, যা ইদানীং ডিফল্ট বলে মনে হচ্ছে।
ফিল রিকিটস 15

7

আপনি এটি সংযুক্ত না করে নির্দিষ্ট স্ক্রিন সেশনের একটি বিশেষ স্ক্রিন উইন্ডোতে একটি কমান্ড প্রেরণ করতে পারেন।

screen -S sessionname -p windowname -X screencommand

-Sস্ক্রিন বা sessionnameকমান্ড শুরু করার সময় সেশনটির নামটি বিকল্পের সাথে সেট করা হয় ; ডিফল্টরূপে এটি byobuবাইবুর সাথে। আপনি পর্দার পিআইডি পরে ব্যবহার করতে পারেন -Stitleকমান্ড দিয়ে উইন্ডোর নাম সেট করতে পারেন । আপনি উইন্ডো নম্বরটিও ব্যবহার করতে পারেন।

screen -S byobu -p 1 -X stuff 'ls
'

যখন আমি কোনও স্থান ছাড়াই স্ট্রিংয়ের জিনিসটি খাই তখন এটি আমার পক্ষে কাজ করে তবে দৃশ্যত কিছুই করে না। কোন ধারনা?
ফ্রানসোয়া বিউসোলিল

ঠিক আছে, আমার খারাপ। স্থানটি স্থানীয়ভাবে ব্যাশ দ্বারা ব্যাখ্যা করা হয়েছিল এবং এসএসএইচ সম্পূর্ণ কমান্ডটি দেখছিল না। এখন কাজ!
ফ্রান্সেওস বিউসোলিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.