ত্রুটি `কোনও প্রোটোকল নির্দিষ্ট করা নেই - এসএসএসের মাধ্যমে দূরবর্তী মেশিন থেকে চলাকালীন


10

নীচের মতো আমার গ্রাফিকাল (জিইউআই) অ্যাপ্লিকেশনটি চালানোর জন্য আমার কাছে একটি স্ক্রিপ্ট রয়েছে।

#cat gui.sh
#!/bin/bash 
./gui -display 127.0.0.1:0.0    

আমি যখন এটি স্থানীয় মেশিন ( ./gui.sh) থেকে চালিত করি তখন এটি পুরোপুরি ঠিকঠাক হয়। তবে আমি যখন এটি স্যাশ এর মাধ্যমে রিমোট মেশিন থেকে চালানোর চেষ্টা করছি, তখন আমি নিম্নলিখিত ত্রুটি পেয়েছি।

[root@localhost]# ssh -f 192.168.3.77 "cd /root/Desktop/GUI/ && "./gui.sh""   
No protocol specified  
gdm: cannot connect to X server 192.168.3.77:0.0   
[root@localhost]#    

আমি জানি না, এটি কোন প্রোটোকলটি জিজ্ঞাসা করছে বা আমি কিছু মিস করছি? আমি স্ক্রিপ্ট ছাড়াই অ্যাপ্লিকেশন শুরু করে সরাসরি চেষ্টা করেছি [ ssh -f 192.168.3.77 "cd /root/Desktop/GUI/ && "./gui""], তবে ফলাফলটি একই। আমি মত বিভিন্ন সমন্বয় চেষ্টা করেছি ssh -Y, ssh -fYএবং আরো অনেক কিছু কিন্তু ফলাফল একই হয়!
দ্বিতীয়ত আমার আবেদনের জন্য একটি শর্ত থাকা আবশ্যক যে, আমাদের প্রথমে প্রোগ্রামটি অবস্থিত ডিরেক্টরিতে যেতে হবে।
কোন সমাধান?

উত্তর:


5

বিকল্পটির অর্থ -display 127.0.0.1:0.0সেই guiপ্রোগ্রামের উপর নির্ভর করে তবে এর সম্ভবত সম্ভবত এটির অর্থ "এক্স ডিসপ্লে 127.0.0.1.0.0.0 এ প্রদর্শিত হবে"। এটি টিসিপির মাধ্যমে অ্যাক্সেস করা প্রথম স্থানীয় এক্স ডিসপ্লে। এটি প্রায় অবশ্যই দুটি কারণে ভুল। প্রথমত, স্থানীয় এক্স ডিসপ্লেটি হওয়া উচিত :0, না 127.0.0.1:0কারণ আইপি অ্যাড্রেস সহ ট্র্যাফিক স্থানীয় অ্যাক্সেসের পরিবর্তে টিসিপি দিয়ে যায়। টিসিপি দিয়ে যাওয়া এক্স সার্ভার টিসিপি সংযোগ গ্রহণ করে কিনা তার উপর নির্ভর করে কাজ করতে পারে না। এমনকি যদি তা হয় তবে আপনি স্থানীয় প্রদর্শনগুলি যে অনুকূলিতকরণটি হারাবেন তা হারাবেন।

ব্যবহারের জন্য প্রদর্শনটি সাধারণত DISPLAYপরিবেশের পরিবর্তনশীল দ্বারা নির্দেশিত হয় এবং সেই পরিবর্তনশীলটি স্বয়ংক্রিয়ভাবে সঠিকভাবে সেট হয়ে যায়। (সাধারণত, যদি DISPLAYএর সঠিক মান থাকে তবে এটি এর সাথে জগাখিচু হয়ে পড়েছেন because মূল ব্যতিক্রমটি ব্যবহার screenবা is tmux)

আপনার প্রোগ্রামটি সম্ভবত DISPLAYপরিবেশের পরিবর্তনের মান সন্ধান করবে , কারণ এটি xlib কলগুলির সাথে স্বয়ংক্রিয়ভাবে ঘটতে পারে। সুতরাং আপনার কেবল কল করা উচিত ./gui, আপনার স্ক্রিপ্ট কার্যকর কিছু করতে পারে না। যদি আপনার প্রোগ্রামটি -displayযুক্তিতে জোর দেয় , তবে পরিবেশের পরিবর্তনশীলটি ব্যবহার করুন:

./gui -display "$DISPLAY"

4

ssh -Yএবং ssh -Xএকটি ভাল শুরু হওয়া উচিত তবে আপনি কি আপনার এক্স সার্ভারটিও ফরোয়ার্ড করেছিলেন?

$ grep X /etc/ssh/sshd_config
X11Forwarding yes

অন্যথায় এটি কাজ করবে না।

আরেকটি বিষয় যাচাই করার জন্য হ'ল ডিসপ্লে ভেরিয়েবল এটি এর মতো কিছু দেখানো উচিত:

$ echo $DISPLAY
$ localhost:10.0

এটি পরে চালানো হয়েছিল ssh -Y। আমি ছাড়াই -Yবা ছাড়াই যদি একই পরিবর্তনশীলটি খালি থাকে -X

Ssh এর ম্যান পৃষ্ঠাটির মধ্যে পার্থক্য -Xএবং -Yপড়ার জন্য।


3

এই ভিডিওটিতে কীভাবে ধাপে ধাপে ত্রুটি সমাধান করা যায় তা ব্যাখ্যা করা হয়েছে। যদি আপনি দেখতে না চান তবে নীচের পাঠ্যটি অনুসরণ করুন:

কোনও প্রোটোকল নির্দিষ্ট ত্রুটিটি নির্দেশ করে না যে "ব্যবহারকারী কীভাবে জিইআইআই অ্যাপ্লিকেশন চালু করতে জানেন না" এবং "ব্যবহারকারীর জিইউআই অ্যাপ্লিকেশন চালু করার অনুমতি নেই"। ভিডিওতে জিইউআই অ্যাপ্লিকেশনটি dbca

এই ভিডিওর মূল অংশটি হ'ল কমান্ডটি চালানো xhost +যা ব্যবহারকারীকে দূরবর্তী সিস্টেম থেকে দূরবর্তী স্থান থেকে স্থানীয় সিস্টেমে একটি জিইউআই প্রদর্শন করার অনুমতি দেয়।


6
xhost +আপনার ডিসপ্লেতে সংযোগ করতে যে কাউকে অ্যাক্সেস দেবে। আমি সুপারিশ করবxhost +local:[hostname or ip]
ভাইমুদুদ

এটি এবং এই আমার জন্য কি ত্রুটি সংশোধন করা হয়েছে। +1
যুগ সিং

1

দেবিয়ান জেসি, আরও যুক্ত করুন:

export XAUTHORITY=/.Xauthority

xhost +আমার সমস্যাটি স্থির করুন (ক্লায়েন্টের পক্ষের)
বিপদ 89

যে সাহায্য করেছে, আপনাকে ধন্যবাদ! আমার XAUTHORITY ছিল /tmp/xauth-1000-_0তবে দুটি অতিরিক্ত এক্স সেশন শুরু করার পরে ফাইলটি অদৃশ্য হয়ে গেল - কেবল তৃতীয়টি রয়ে গেল। সমস্ত উইন্ডোজের সমস্যা সমাধানের জন্য আমি এটি দিয়ে এটি পুনরুদ্ধার করেছি:ln -s ~/.Xauthority /tmp/xauth-1000-_0
joeytwizz

0

আমি একই ইস্যুতে আক্রান্ত হয়েছি আমি এটি থেকে ডিসপ্লের পরিবেশের পরিবর্তনশীল পরিবর্তন করে সমাধান করেছি:

export DISPLAY=:0.0

প্রতি

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