অন্য স্ক্রিপ্টকে অন্য ব্যবহারকারী হিসাবে মামলা করার সময় কেন 'স্ক্রিপ্ট'কে' স্ক্রিন 'এ কাজ করতে অনুমতি দেয়?


36

একটি নির্দিষ্ট দীর্ঘ চলমান স্ক্রিপ্ট চালানোর জন্য আমাকে একজন ব্যবহারকারী হিসাবে মামলা করা হয়েছিল। আমি স্ক্রিনটি ব্যবহার করতে চেয়েছিলাম তবে ত্রুটি বার্তাটি পেয়েছি "" আপনার টার্মিনাল '/ dev / pts / 4' খুলতে পারছি না - দয়া করে চেক করুন ""

তাই আমি প্রায় গুগল হয়েছি এবং একটি ফোরাম পোস্ট জুড়ে এসেছিলাম যাতে চালনার নির্দেশ দেওয়া হয়েছিল $ script '/dev/null/'। আমি তা করেছিলাম এবং তারপরে আমি স্ক্রিন করতে পারি।

কেন এই কাজ করে? Su কি করছে যে সেই স্ক্রিনটি su'ed ব্যবহারকারী হিসাবে চলতে পারে না? 'স্ক্রিপ্ট' কে / দেব / নালকে কেন পুনরায় নির্দেশনা দেয় যা অন্যথায় প্রতিরোধ করা হয়? মূল স্ক্রিপ্টটি কোথাও আসল ব্যবহারকারী হিসাবে লগ লিখতে ব্যবহার করছে?


2
ক্লিনারটি suস্ক্রিন সেশনের মধ্যে থেকে চালানো হবে।
জাস্টারোবার্ট

আপনি যদি একাধিক ব্যবহারকারীকে পরিষেবা / ব্যাচ-স্ক্রিপ্ট-চলমান অ্যাকাউন্টের জন্য একই পর্দায় সংযুক্ত করতে সক্ষম হন তবে @saarobert না।
অ্যাশলে

উত্তর:


40

ভাল, প্রযুক্তিগতভাবে আপনি এখানে কিছুই পুনর্নির্দেশ করছেন না।

কল করা script /dev/nullকেবল scriptপুরো টাইপস্ক্রিপ্টটিকে সংরক্ষণ করে তোলে /dev/nullযার মধ্যে অনুশীলনের অর্থ সামগ্রীগুলি বাতিল করা disc

দেখুন man scriptবিস্তারিত তথ্যের জন্য এবং util-লিনাক্স-ng বাস্তবায়নের প্যাকেজ ( misc-utils/script.c)।

screenআসলে এর সাথে কিছু করার নেই । কেন এটি কাজ করে তা scriptআপনার জন্য সিউডো-টার্মিনাল তৈরির একটি পার্শ্ব প্রতিক্রিয়া রাখে /dev/pts/X। এইভাবে আপনাকে নিজেই এটি করতে হবে না এবং স্ক্রিনে অনুমতি সংক্রান্ত সমস্যা থাকবে না - আপনি যদি suব্যবহারকারী থেকে ব্যবহারকারী বিতে সরাসরি screenব্যবহারের মাধ্যমে আপনি এর সিউডো-টার্মিনালটি দখল করার চেষ্টা করেন । এই সফল হবে না যদি না তুমি রুট । এজন্য আপনি ত্রুটি বার্তাটি দেখেন।


6

আপনার টার্মিনাল উইন্ডোতে সরাসরি আউটপুট দিতে, চলমান প্রোগ্রামটি আপনার নিয়ন্ত্রণকারী টার্মিনালটিতে লিখতে সক্ষম হতে হবে। যদি আপনি কোনও এক্সটার্ম বা এসএসএস বা অন্য কোনও ভার্চুয়াল সংযোগ ব্যবহার করে থাকেন (বাস্তব লাইভ সরাসরি সংযুক্ত টার্মিনালের বিপরীতে) আপনার নিয়ন্ত্রণকারী টার্মিনালটি সিউডো টিটি (পিটিআই)।

আপনি যখন লগইন করেন কেবল তখনই আপনার লেখার অনুমতি নিয়ে সেট আপ করা হয়, অন্যথায় অন্য ব্যবহারকারীরা আপনার ডিসপ্লেতে (বা এটি পড়তে) স্ক্রিবি করতে পারে। সুতরাং যখন আপনি অন্য ব্যবহারকারীর কাছে মামলা করেন (এবং সেই ব্যবহারকারীটি মূল নয়) তখন সেই ব্যবহারকারীর অন্তর্নিহিত pty- তে অ্যাক্সেস নেই।

যাইহোক, আরও জটিল আই / ও যেমন স্ক্রিনটির জন্য pty এর সরাসরি অ্যাক্সেসের প্রয়োজন এটি আপনার পুরো স্ক্রিনটি নিয়ন্ত্রণ করার যাদু work আপনি যখন নিয়ন্ত্রণের টার্মিনালটিতে সঠিক অ্যাক্সেস না পেয়ে কমান্ডটি চালাচ্ছেন সেই ব্যক্তির সাথে সমস্যা হয়।

স্ক্রিপ্টটিকে / dev / null এ পুনর্নির্দেশের ফলে স্ক্রিনটি নিয়ন্ত্রণকারী টার্মিনালে লেখার চেষ্টা না করে, সুতরাং এটি অনুমতি সমস্যায় পড়ে না।


2
তাহলে আমি কীভাবে দেখতে পেলাম যে কোনও স্ক্রিনটি যদি / dev / নালায় যায় তবে কী লিখছে? আমি নিশ্চিত যে আমি ভুল বুঝেছি এবং এটি সত্যই / দেব / নূলে যায় না তবে কোথায় যায়?
ব্যবহারকারী 63623

"এটি", যার অর্থ স্ক্রিন আউটপুট, যায় না /dev/null। প্রথম: স্ক্রিপ্টটি আপনার সেশনটি রেকর্ড করে (ম্যানপেজটি দেখুন), এবং আপনার এটির কোনও প্রয়োজন নেই: যাতে এটি / dev / নালায় যায়। তবে এর কোনও পার্শ্ব-প্রতিক্রিয়া নেই: এটি একটি সিডো টার্মিনাল তৈরি করে এবং এখন আপনি এটি ব্যবহার করছেন এবং স্ক্রিনটি এই @ করোল-পিকজাকের অ্যাওয়ারকে দেখতে পাবেন।
Nanne
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.