কোনও এক্স সার্ভার চলছে না তা ভেবে কোনও প্রোগ্রাম কীভাবে চালিত করবেন


28

আমার কাছে এই প্রোগ্রামটি রয়েছে যা একটি পাঠ্য ব্যবহারকারী ইন্টারফেস এবং গ্রাফিক্যাল ইউজার ইন্টারফেস উভয় দিয়েই চলতে পারে।

এক বা অন্যটিকে জোর করার জন্য এটিতে কোনও কমান্ড লাইন সুইচের অভাব রয়েছে, বরং আমি অনুমান করি যে এটি কোনওভাবে আমরা এক্সে আছি কিনা তা স্বয়ংক্রিয়ভাবে সনাক্ত করে (যেমন আমি যদি এটি ভার্চুয়াল টার্মিনাল থেকে চালিত করি তবে এটি তার পাঠ্য মোডে প্রবেশ করে, এবং যদি আমি এটি থেকে চালিত করি) এক্স টার্মিনাল এমুলেটর এটি একটি পৃথক গ্রাফিকাল উইন্ডো খুলবে)।

আমি এটিকে জোর করে পাঠ্য মোডে রাখতে এবং এটি এক্স টার্মিনালের অভ্যন্তরে চালিত করতে চাই। আমি কীভাবে এটি করতে যাব?

উত্তর:


40

সাধারণত

unset DISPLAY

টার্মিনালের কমান্ড-লাইনে। কিছু অ্যাপ্লিকেশনগুলি তার চেয়ে বেশি স্মার্ট হয় এবং প্রকৃতপক্ষে অনুমতিগুলি এবং কনসোল বনাম সিউডোটার্মিনাল পরীক্ষা করে।


7
দুর্ভাগ্যক্রমে, কিছু সত্যিকারের বাধাযুক্ত সফ্টওয়্যার DISPLAY=:0যদি এটি সেট না করা হয় তবে ধরে নেওয়া হবে । আমি বিশ্বাস করি আপনি এটি অন্য কোনও ব্যবহারকারীর অধীনে চালিয়ে এবং লুপব্যাক এক্স 11 ড্রপ করার জন্য iptables ব্যবহার করে এটি ঠিক করতে পারেন, তবে এটি বেশ স্থূল।
কেভিন 19

2
@ কেভিন হয়ত DISPLAY=invalid:0?
সোর্সজেদি

2
@ পিটারকর্ডস বা আপনি সাব-শেলের envপরিবর্তে কমান্ডটি সম্পাদন করতে পারেন :env -u DISPLAY emacs foo.c
পাবউক

2
@ পিটারকার্ডস emacsএর এক্স ব্যবহার নিষ্ক্রিয় করতে একটি কমান্ড লাইন পতাকা রয়েছে Just ঠিক টাইপ করুন emacs -nw। তবে এটি না হলে আপনি পরিবর্তে এটি ব্যবহার করতে পারেন DISPLAY= emacs, যা কাজ করে।
ক্যাস্পার্ড

2
DISPLAY=0.0.0.0:0কোনও নাম সার্ভার অনুসন্ধান না করে তাত্ক্ষণিকভাবে ব্যর্থ হয়।
pts

31

আপনি যদি একটি একক কমান্ডের জন্য এক্স অক্ষম করতে চান তবে আপনি লিখতে পারেন

DISPLAY= ./my_command

এর পরে কৌশলগত ফাঁকা স্থান লক্ষ্য করুন =। আরও সাধারণভাবে, আপনি ফাঁকে <variable>=<value>পৃথকীকরণের ক্রম সহ আপনার কমান্ডের উপসর্গ করে একটি প্রক্রিয়াটির জন্য পরিবেশ পরিবর্তনশীল সেট করতে পারেন । যেহেতু স্থান বিভাজক হিসাবে কাজ করে তাই =অবিলম্বে একটি স্পেস পূর্ববর্তী পরিবর্তনশীলকে সাফ করে। কমান্ড হিসাবে সাবসেল ব্যবহার করে এবং তার পরিবেশটি মুদ্রণ করে আমরা এই উপসর্গগুলির প্রভাবটি দেখতে পারি। উদাহরণস্বরূপ নিন:

$ A=a B=b C= D=d sh
$ echo $A $B $C $D

এটি মুদ্রণ করবে

a b d

এটি দেখায় যে সাবহেলের পরিবেশ প্রকৃতপক্ষে ভিন্ন হিসাবে intended নোট করুন যে পৃথক যুক্তিগুলি প্রেরণের আগে শেল প্রতিস্থাপন ঘটে echo, সুতরাং আউটপুটে bএবং এর dমধ্যে কেবলমাত্র একক স্থান রয়েছে ঠিক যেমন কমান্ড লাইনটি ছিল echo a b d(দুটি স্পেস সহ)।

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