আমি কী স্ক্রিন সেশনে আছি তা যাচাই করবেন?


75

আমি এখনই স্ক্রিন সেশনে আছি কিনা তা কি কোনওভাবে পরীক্ষা করা সম্ভব? আমার এটি নির্ধারণ করতে হবে যে সিটিআরএল + ডি হিট করা আমাকে সার্ভার থেকে সংযোগ বিচ্ছিন্ন করে বা কেবলমাত্র বর্তমান স্ক্রীনটি বন্ধ করে দেয়। ধন্যবাদ।

উত্তর:


107

আপনি $STYভেরিয়েবলটি দেখতে পারেন ( স্ক্রিন কমান্ড দ্বারা একটি পরিবর্তনশীল সেট )। যদি এটি "" না হয় তবে আপনি স্ক্রিন সেশনে রয়েছেন।

আমি পর্দায় আছি

$ echo $STY 
29624.pts-1.iain-10-04
$

আমি পর্দায় নেই

$ echo $STY

$

12
এটি অনুমান করে যে আপনি এখনও স্থানীয় কম্পিউটারে চলমান সেশনের মধ্যে রয়েছেন। আপনি যদি স্ক্রিন শুরু করেন এবং তারপরে অন্য কোথাও এসএসএইচ করেন তবে এটি কার্যকর হবে না।
ডেভিড ম্যাকিনটোস

2
if test -n "$STY"; then printf "This is a screen session named '$STY'.\n"; else printf "This is NOT a screen session.\n"; fi
সামগ্রিক

2
@ ডেভিডম্যাকিনটোস আপনি যদি অন্য কোথাও এসএসএইচ করতেন তবে সিটিআরএল-ডি মারার ফলে "আমাকে সার্ভার থেকে সংযোগ বিচ্ছিন্ন করতে হবে", যা প্রশ্নটি ঠিক জিজ্ঞাসা করে।
দোলা

1
@ aggregate1166877 আমি এখন ব্যবহার করি এমন প্রতিটি একক মেশিনে আপনি যদি একটি নাম হিসাবে পোস্ট করেন তবে আমার কাছে এটি আছে।
এডুয়ার্ডো বেজারেরা

44

আপনি $ TERM ভেরিয়েবলটি দেখতে পারেন।

echo $TERM

যদি এটি একটি screenঅধিবেশন হয় তবে ভেরিয়েবল শব্দটি "স্ক্রীন" ফিরে আসে।

root@deore:/volumes# echo $TERM
screen

Ctrl-a -d (পর্দার প্রস্থান করতে)

root@deore:/volumes# echo $TERM
xterm

এছাড়াও চেক করুন: https://stackoverflow.com/questions/3472287/how-do-you-tell-if-the-current-terminal-session-is-in-gnu-screen


4
এটি অনুমান করে যে আপনি কোনও কারণে ইচ্ছাকৃতভাবে আপনার TERM মান নিয়ে গণ্ডগোল করছেন না।
ডেভিড ম্যাকিনটোস

1
আপনি যদি স্ক্রিনের অভ্যন্তরে থাকাকালীন আপনার TERM ভেরিয়েবলটি পরিবর্তন করে থাকেন তবে আপনি নিজেকে সব ধরণের সমস্যার জন্য আমন্ত্রণ জানাচ্ছেন।
দোলা

ভাল আমার সোলারিস ২.6 নোডগুলি স্ক্রিনের মানগুলিতে সেট হওয়া TERM মানগুলির সাথে দুর্দান্ত খেলছে না।
ডেভিড ম্যাকিনটোস

3
"$TERM" = "screen"বিকল্পের পরিবর্তে sudoপরিবেশে প্রবেশের সময় সংরক্ষণ করা হবে বলে মনে হয় $STY
ম্লেবিয়াস

29

আপনি ডিফল্ট কী বাইন্ডিংগুলি পরিবর্তন না করে আপনি Ctrl+ a-> Ctrl+ করতে পারেন t, যা আপনি স্ক্রিনে থাকলে সময়টি প্রদর্শন করবে। আপনার ssh থাকলেও এটি কাজ করবে: অন্য পরামর্শগুলির মতো নয় অন্য কোথাও দূরে।


4
কেন আমরা এটিকে প্রাধান্য দিচ্ছি না?
AndreKR

এটি অবশ্যই এখানে সেরা সমাধান।
ফেলিক্স জেন

2
@ ওম্বল আপনি যদি কোনও অজানা প্রোগ্রামে থাকেন যা কী ক্রম এবং আদেশগুলির প্রতিক্রিয়া হিসাবে এলোমেলো ধ্বংসাত্মক কাজ করতে পারে তবে কিছুই নিরাপদ নয়।
গুরুগহে

2
@ আন্দরকেআর: এটি কোনও স্ক্রিপ্টে কাজ করে না
ফ্রাঙ্ক মুলেনার

1
আমি আপভোটিং করছি না কারণ একটি স্ক্রিনে, এবং অন্য স্ক্রিনে স্ক্রিনিং করা হচ্ছে, এবং আমার আক্ষরিক অর্থে দেখতে হবে $ STY এমনকি সেট করা আছে কিনা। যা কোনও কারণে এটি খালি ফিরে আসছে।
ব্রায়ান থমাস

14

captionকমান্ড ~/.screenrcএকটি পর্দা অধিবেশন পার্থক্য একটা চমৎকার উপায়।

আমি ব্যক্তিগতভাবে এটি ব্যবহার করছি:

$ cat ~/.screenrc
caption always "%{= kc}Screen session on %H (system load: %l)%-28=%{= .m}%D %d.%m.%Y %0c"

এটি স্ক্রিনের নীচে একটি লাইনের মতো যুক্ত করে:

Screen session on gbook (system load: 1,75 1,74 1,68)                   Lun 05.01.2015 13:01

প্রথম অংশ (সিস্টেমের নাম + লোড) সবুজ এবং গোলাপী তারিখ সহ। দরকারী এবং মিস মিস!


এটি নিখুঁত! এটি (নীচের অবস্থান) পথে পায় না, এটি সর্বদা দৃশ্যমান (এবং বর্ণযুক্ত) এবং সিস্টেম সম্পর্কে দরকারী তথ্য সরবরাহ করে। আমিও এখানে এই পোস্ট stackoverflow.com/a/43571028/2450431
hrvoj3e

6

আমি আরও একটি সমাধান পেয়েছি:
আপনার সংশোধন করুন .screenrc, তাই আমার স্ক্রিন সেশনটি সাধারণ টার্মিনাল থেকে সম্পূর্ণ আলাদা দেখায়।


আমি মনে করি আপনি কী পরামর্শ দিচ্ছেন তা আমি জানি এবং এটি কিছু পরিস্থিতিতে এই সমস্যাটিকে পুরোপুরি এড়াতে পারে। উদাহরণস্বরূপ .screenrcফাইল (উদাহরণস্বরূপ) দেখিয়ে আপনি কী বোঝাতে চেয়েছেন তা বর্ণনা করলে এটি আরও সহায়ক হতে পারে ।
jvriesem

0
screen -ls

আপনার সেশন এবং

screen -r sessioninfo

যদি সংযোগ বিচ্ছিন্ন হয় তবে একটি সংযোগ বিচ্ছিন্ন হয়ে আবার সংযোগ স্থাপন করতে।

screen -D -r sessioninfo

সংযোগ বিচ্ছিন্ন একটি পুনরায় সংযোগ করতে।


1
এটি প্রশ্নের উত্তর দেয় না।
দোলা

-1

screen -ls। এটি স্পষ্টভাবে Attachedবনাম Detachedস্থিতি নির্দেশ করে যাচ্ছে ।

উদাহরণ সংযুক্ত:

$ screen -ls | grep tached
3132.pts-0.esavo00      (Attached)

বিচ্ছিন্ন উদাহরণ:

$ screen -ls |grep tached
3132.pts-0.esavo00  (Detached)

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