ইতিমধ্যে চলমান পর্দা অধিবেশন কমান্ড পাঠান


10

আমি opensolaris একটি চলমান gnu স্ক্রীন সেশন (4.00.03) এ কমান্ড পাঠানোর চেষ্টা করছি, তবে যেকোন সংমিশ্রণের মাধ্যমে কোনও আদেশ চালানোর জন্য এটি পেতে পারছি না screen -X

ঠিক আছে, আমি একটি পর্দা সেশন শুরু screen -S test, এবং তারপর সঙ্গে চেষ্টা screen -r -X "date" শুধু আমাকে তারিখ দেখানোর জন্য, যখন আমি এটি পুনরায় সংযোগ স্থাপন করব। কিন্তু পর্দায় একটি ত্রুটি বার্তা বা আউটপুট ঘটেছে না। আমি অনেক সংমিশ্রণ সঙ্গে চেষ্টা, যে আমি এমনকি মনে করতে পারেন না।

এটা কিভাবে সম্পন্ন কোন ইঙ্গিত?

আমি এটি করার কারণটি হল, কারণ আমার একটি প্রোগ্রাম আছে, যা একটি ডেমন হিসাবে আসে না এবং আমি এটি স্ক্রীন সেশনে শুরু করতে চাই, তাই আমি পরে যা দেখতে পাচ্ছি তা দেখতে পারি।


মনে হচ্ছে, যেমন এই "কমান্ড" তারা মানুষের পৃষ্ঠাগুলির বিষয়ে কথা বলছে, পর্দা কমান্ডের জন্য, যেমন স্ক্রীন সেশনের জন্য সেটিংসের মতো। শেলের জন্য কমান্ড পাঠানোর পরিবর্তে, স্ক্রীন সেশনে যা খোলা আছে। সুতরাং, কেউ কিভাবে একটি bash স্ক্রিপ্ট সঙ্গে এটি ঘটতে একটি ধারণা ??

@ এক্সন: হ্যাঁ, -X স্ক্রিন কমান্ড পাঠায়, শেল কমান্ডগুলি নয়, তবে স্ক্রীনের একটি কমান্ড 'স্ক্রীন' রয়েছে যা নতুন স্ক্রীন উইন্ডো খুলতে পারে।

উত্তর:


17

আসলে এটা বেশ সহজ। আপনি নিম্নলিখিত ব্যবহার করতে পারেন:

screen -S sessionname -X stuff 'command'`echo -ne '\015'`

echo -ne '\015' emulates চাপা প্রবেশ করান চাবি.

দ্রষ্টব্য: যে 'স্টাফ' একটি স্ক্রিন কমান্ড। http://www.gnu.org/software/screen/manual/screen.html#Stuff


আপনি কি "স্টাফ" প্রতিনিধিত্ব করে তা নির্দিষ্ট করতে পারেন? যে একটি নাম ... বা কমান্ড ... বা অন্যান্য পরামিতি?
Cerin

এটি আসলেই কাজ করে, তবে আমি এটি যেকোনোভাবেই বলব না;) এটি কী কী চাপযুক্ত ইভেন্টগুলির পাশে এবং পর্দায় নতুন লাইন পাশ করার মতো কিছু। শুধু সাধারণ পর্দা চালানোর কমান্ড নেই ...?
ducin

@Cecin: stuff স্ট্রিনে একটি স্ট্রিং 'স্টাফ' তে একটি স্ক্রিন কমান্ড
konrad

এটি খুব ভাল, কিন্তু কিছু কারণে এটি "স্ক্রিন-রডস সেশন নাম-এক্স স্টাফ" ls -l এর সাথে কাজ করে না। echo -ne '\015' "কেন?
e271p314

এটি কাজ করে না যতক্ষণ না আমি কমান্ডটি দুইবার চালাই ... এবং পৃথক কমান্ড লাইনগুলিতে ... যদি আমি করি screen -d -m -S sessionname; screen -S sessionname -X [...] কিছুই এমনকি কাজ করবে (screen -d -m -S sessionname&)&sleep 10;screen -S sessionname -X [...] কিছুই না যে একটি নতুন পর্দা সেশন তৈরি ছাড়া কিছুই না। নিচে-ভোটিং
user3338098

4

আপনি চান মত শব্দ:

$ screen -S test -d -m -c /dev/null -- sh -c 'date; exec $SHELL'

-S test: name this session
-d -m: start screen detached
-c /dev/null: ignore ~/.screenrc (provide a different file or drop this option,
  as needed)
--: end of screen options
sh -c 'date; exec $SHELL': command for screen to run, note that if this command
  was just 'date' then screen would exit immediately.  if you don't want to exit
  screen after your command exits, then you might use:
    $ screen -S test -d -m -c /dev/null -- your command here

অথবা হয়তো আপনি শুধু চান dtach


কিছুই এই ফলাফল চলমান। কোন সাফল্য বা ত্রুটি বার্তা, কিন্তু screen -list কোন সেশন খোলা দেখায়।
Cerin

এই উত্তর আমার জন্য কাজ করে। কী ছিল - পর্দা অপশন শেষ।
Plazgoth

1
screen -S <session_name> -X screen [-t <title>] <shell_command> [<args>]

একটি নতুন উইন্ডো খুলুন (শিরোনাম সঙ্গে খেতাব ) নামের একটি বিদ্যমান সেশনে session_name , এবং চালানো shell_command (ঐচ্ছিক আর্গুমেন্ট সঙ্গে args )

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