আপনার উপস্থিতি screen -R -d
দুটি বিদ্যমান থাকা সেশনে স্বয়ংক্রিয়ভাবে সংযুক্ত হওয়া প্রয়োজন এবং যদি একটি সেশন তৈরি করে অন্যথায়।
নিশ্চিত করুন যে আপনি এটি কেবল ইন্টারেক্টিভ শেলগুলিতেই করছেন । ~/.bashrc
এমনকি এর অবিভাবনীয় শেলের জন্য বাশ উত্সগুলি যখন তার মূল প্রক্রিয়াটি আরএসডি বা এসএসডি করা হয় (এটি ডকুমেন্টেশনে উল্লেখ করা হয়েছে, তবে এটি মিস করা সহজ)। আপনি শেলটি ইন্টারেক্টিভ বলতে পারেন কারণ $-
এতে রয়েছে i
।
case $- in
*i*) screen -Rd;;
esac
এটি আপনাকে সহজেই বিভিন্ন টার্মিনালগুলিতে বিভিন্ন স্ক্রিন সেশন চালাতে দেয় না।
আপনাকে পর্দা থেকে আলাদা করতে হবে, তারপরে লগ আউট করার জন্য প্যারেন্ট শেলটি থেকে প্রস্থান করুন। exec screen
পরিবর্তে ব্যবহার করে এটি সমাধান করা যেতে পারে screen
।
আপনি যদি লগইন শেল ছাড়া অন্য কোনও শেল শুরু করেন তবে আপনাকে স্ক্রিনে রেখে দেওয়া হবে যা আপনি বেশিরভাগ সময় চাইবেন না। আমি অন্তত এটিকে সীমাবদ্ধ করবো যখন আপনি সরাসরি ইন্টারেক্টিভ এসএস সেশনে চলে যাচ্ছেন আপনার নীচের মতো কিছু সহ ~/.bash_profile
:
case "/$(ps -p $PPID -o comm=)" in
*/sshd) screen -R -d;;
esac
আপনি যখন .bashrc
কোনও ত্রুটি হিসাবে শেল থেকে বেরিয়ে আসার কারণ হিসাবে জটিল জিনিসগুলি ব্যবহার করেন তখন লগইন করতে অসুবিধা হয় careful
আমি যা প্রস্তাব দিচ্ছি তা হ'ল সার্ভারে আপনার শেল প্রারম্ভিককরণ ফাইলগুলি সংশোধন না করা, বরং ক্লায়েন্টের থেকে স্পষ্টভাবে স্ক্রিন চালানো, যেমনটি
ssh -t host.example.com screen -R -d
(আপনি সম্ভবত ক্লায়েন্টে একটি শেল ওরফে বা ডেস্কটপ এনভায়রনমেন্ট শর্টকাট তৈরি করতে পারেন way) আপনি সহজেই স্ক্রিনটি চালাবেন না, বিকল্প সেশনের নাম উল্লেখ করতে পারেন।