আমি প্রায়শই রিমোট সেশনগুলি বাঁচিয়ে রাখতে জিএনইউ স্ক্রিন ব্যবহার করি। যেহেতু আমি ইমাসে থাকি, তাই আমি সত্যিই ইমাক্সের মধ্যে থেকে একটি চলমান দূরবর্তী শেল সেশনটি পুনরায় শুরু করতে সক্ষম হতে চাই।
জিএনইউ স্ক্রিনটি টার্মিনাল মাল্টিপ্লেক্সিং এবং চরিত্র আঁকার মতো সমস্ত ধরণের অভিনব জিনিস প্রয়োগ করে যা সত্যই আমার প্রয়োজন হয় না। আমি সত্যই কেবল বিচ্ছিন্নযোগ্য এবং পুনরায় শুরুযোগ্য শেল সেশনগুলিতে আগ্রহী, তাই যথাসম্ভব সাধারণ কিছু dtachযথেষ্ট।
আমি একটি এসএসএইচ অধিবেশন খুলতে এবং একটি চলমান dtachসেশনে পুনরায় সংযোগ করার জন্য এই ফাংশনটি ব্যবহার করছি shell-mode( এখান থেকে নেওয়া ):
(defun ssh-dtach (host)
"Open SSH connection to remote host and attach to dtach session."
(interactive)
(let ((explicit-shell-file-name "dtach")
(explicit-dtach-args '("-A" "/tmp/emacs.dtach" "-z"
"/bin/bash" "--noediting" "-login"))
(default-directory (format "/ssh:%s:" host)))
(shell (format "*ssh %s*" host))))
ছোটখাটো কিরক সত্ত্বেও, এটি প্রায় সূক্ষ্মভাবে কাজ করে shell-modeতবে এশেলের মধ্যে এটি কেবল একটি সাবপ্রসেস শুরু করে, তাই টার্মিনালটি খুব সীমাবদ্ধ হয়ে যায় (উদাহরণস্বরূপ কোনও পথ অটোমোপ্লেশন নয়)।
dtachরিমোট সার্ভারের সাথে সংযোগ স্থাপনের পরে আমি চলমান সেশনে সংযোগ স্থাপনের জন্য কীভাবে এসেলকে কনফিগার করব ?
সম্পাদনা: আমি যখন আবার এই সমস্যাটি নিয়ে ভাবছিলাম তখন বুঝতে পেরেছিলাম যে আমি আসলে কী চাই তা সম্পূর্ণ পরিষ্কার নয়। এখানে একটি তালিকা:
- আমি কিছু সাব-প্রসেসে নয়, বরং এসেইলে থাকতে চাই
- পুনরায় পাঠানোর পরে আমি চাই রিমোট সেশনের আউটপুট পুনরায় খেলানো হোক এবং রিমোট কমান্ডের ইতিহাস পাওয়া যাবে
- আমি একটি চলমান দূরবর্তী প্রক্রিয়াটির সাথে ইন্টারঅ্যাক্ট করতে সক্ষম হতে চাই (উদাহরণস্বরূপ
yum installআমার ইনপুটটির জন্য দৌড়ে অপেক্ষা করা)
দেখে মনে হচ্ছে এটি dtach দিয়ে সমস্ত কাজ করার জন্য আমাকে কিছুটা এলিস্প কোড লিখতে হবে।
eshellকি স্থানীয় আর কোনটা দূরবর্তী আর কোনটা একটি বহিস্থিত কমান্ড এবং elisp ফাংশন ঝাপসা হয় মধ্যে লাইন। আমি এটিকে আরও ঝাঁঝালো করে তুলতে চাই যে দূরবর্তী চলমান প্রক্রিয়াগুলি স্বচ্ছতার সাথে ইন্টারেক্ট করা যায় যেন তারা স্থানীয় they এটি প্রায় একটি চলমান অধিবেশন "পুনঃসূচনা" হিসাবে সমান হবে, আমি মনে করি।
screenভিতরে চালানো shell-modeভাল কাজ করছে না, কারণ screenবোবা টার্মিনালের চেয়ে বেশি প্রয়োজন।
eshellশেলটি - তাই ধারণাটি আমার কাছে মনে হয় আপনি যা চান তা করতে পারবেন না, যদি না আপনি ডিটিচ সেশনে একটি এসেল বাফার সহ একটি চলমান ইম্যাকগুলি অ্যাক্সেস করেন। নাকি আমি এখানে ভুল করছি?