হেডলেস সার্ভারে এক্সক্লিপ


27

ব্যাশ কমান্ডের আউটপুট অনুলিপি করতে আমি xclip ব্যবহার করে যাচ্ছি:

pwd | tr -d "\n" | xclip -selection c

যাতে আমি আউটপুটটি অন্য টার্মিনাল সেশনে পেস্ট করতে পারি।

আমি এটি আমার হেডলেস সার্ভারে (উবুন্টু ১৩.০৪) ব্যবহার করার চেষ্টা করছিলাম, যা এক্স ছাড়াই শুরু করা হয়েছে। এটি ত্রুটির সাথে কাজ করে না:

Error: Can't open display: (null)

এই সমস্যা এড়ানোর একটি উপায় আছে কি. আমি বুঝতে পেরেছি যে প্রোগ্রামটিকে এক্সক্লিপ বলা হয় এটি সম্ভবত নাও হতে পারে।

উত্তর:


29

ক্লিপবোর্ডটি এক্স সার্ভার দ্বারা সরবরাহ করা হয়েছে । সার্ভারটি হেডলেস আছে কি না তা বিবেচ্য নয়, আপনার স্থানীয় গ্রাফিকাল সেশনটি দূরবর্তী মেশিনে চলমান প্রোগ্রামগুলির জন্য উপলব্ধ। এক্স এর নেটওয়ার্ক-স্বচ্ছ ডিজাইনের জন্য ধন্যবাদ, এটি সম্ভব।

আমি ধরে নিয়েছি যে আপনি লিনাক্স চালিত কোনও মেশিনের থেকে এসএসএইচ দিয়ে রিমোট সার্ভারের সাথে সংযোগ করছেন। X11 ফরোয়ার্ডিং ক্লায়েন্ট কনফিগারেশন এবং সার্ভার কনফিগারেশনে উভয়ই সক্ষম হয়েছে তা নিশ্চিত করুন। ক্লায়েন্ট কনফিগারেশন, আপনি লাইন থাকতে হবে ForwardX11 yesমধ্যে ~/.ssh/configএটি ডিফল্ট আছে, অথবা বিকল্প পাস -Xকরার sshঠিক যে সেশনের জন্য কমান্ড। সার্ভার কনফিগারেশনে আপনার লাইনটি X11Forwarding yesথাকা দরকার /etc/ssh/sshd_config(এটি উবুন্টুতে ডিফল্টরূপে উপস্থিত থাকে)।

কিনা X11 ফরওয়ার্ডিং সক্রিয় করা হয় পরীক্ষা করার জন্য, মান তাকান DISPLAYএনভায়রনমেন্ট ভেরিয়েবল: echo $DISPLAY। আপনার মতো মান দেখতে হবে localhost:10(দূরবর্তী মেশিনে চলমান অ্যাপ্লিকেশনগুলিকে একই মেশিনে চলমান একটি ডিসপ্লেতে সংযোগ করতে বলা হয়, তবে সেই ডিসপ্লে সংযোগটি আসলে এসএসএইচ দ্বারা আপনার ক্লায়েন্ট-সাইড ডিসপ্লেতে ফরোয়ার্ড করা হয়েছে)। মনে রাখবেন যে যদি DISPLAYসেট না করা থাকে তবে ম্যানুয়ালি এটি সেট করার কোনও ব্যবহার নেই: ফরোয়ার্ডিং স্থানে থাকলে পরিবেশের পরিবর্তনশীল সর্বদা সঠিকভাবে সেট করা থাকে। আপনি, SSH সংযোগের সমস্যাগুলি নির্ণয় করার প্রয়োজন হলে, বিকল্প পাস -vvvকরার sshকি ঘটছে একটি বিস্তারিত ট্রেস জন্য।

আপনি যদি অন্য কোনও মাধ্যমে সংযুক্ত হয়ে থাকেন তবে আপনি এক্স 11 ফরোয়ার্ডিং অর্জন করতে সক্ষম হতে পারেন বা নাও করতে পারেন। যদি আপনার ক্লায়েন্ট উইন্ডোজ চালাচ্ছেন, পুটিটি এক্স 11 ফরোয়ার্ডিং সমর্থন করে; আপনাকে উইন্ডোজ মেশিনে এক্সিংয়ের মতো একটি এক্স সার্ভার চালাতে হবে ।


+1 উজ্জ্বল উত্তর, তবে আমি যেমন উল্লেখ করেছি যে এই সার্ভারটি এক্স ছাড়াই চলছে, তাই নাইকাকিন্স উত্তরটি আরও প্রাসঙ্গিক।
আনেকে

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

2
কেবল অবাক হয়েই ... কোনও ওএসএক্স ক্লায়েন্ট থেকে হেডলেস উবুন্টু সার্ভারের সাথে সংযোগ করার সময় এই পদ্ধতিটি কি কার্যকর?
কেন

3
এটি আমার পক্ষে কাজ করে না। আমি ম্যাক -> লিনাক্স সার্ভার থেকে যাচ্ছি। X11Forwarding yesসার্ভারে sshd_config এ আছে এবং আমি -Xযখন সার্ভারে ssh'd করব তখন আমি পাস করেছি। Error: Can't open display: (null)অনcat ~/.ssh/id_rsa.pub | xclip -selection clipboard
chovy

1
ঠিক আছে আমি বুঝতে পেরেছি যে এটি pbcopyইতিমধ্যে স্থানীয়ভাবে আমার ম্যাকটিতে কাজ করে works আমি কীভাবে ম্যাকটিতে এক্স সার্ভার শুরু করব এবং আমি কী সেট করব $DISPLAY?
chovy

4

বাশ নিজেই একটি ক্লিপবোর্ড নেই। এটি একটি এক্স বৈশিষ্ট্য। xcliptএটি একটি কমান্ড লাইন ইন্টারফেস এবং যেমন আপনি দেখতে পাচ্ছেন এটির প্রয়োজন display। চারপাশের উপায় হ'ল কেবল একটি অস্থায়ী ফাইল ব্যবহার করা:

$ echo 123 > /tmp/f
$ tr -d '2' < /tmp/f
13

4
আমি এটা পেলাম না
chovy

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