পটভূমিতে কোনও অ্যাপ্লিকেশন আউটপুট কীভাবে পুনরায় ডাইরেক্ট করতে হয় / ডিভ / নাল


100

আমি লিনাক্সের একটি পটভূমি অ্যাপ্লিকেশন থেকে উত্পন্ন আউটপুটটিকে / dev / null এ পুনঃনির্দেশ করতে চাই।

আমি কেট টেক্সট এডিটর ব্যবহার করছি এবং এটি টার্মিনালের সমস্ত ডিবাগ বার্তাগুলি মুদ্রণ করে যা আমি / dev / null এ পুনঃনির্দেশ করতে চাই।

কোনও ধারণা কীভাবে এটি করবেন?

ধন্যবাদ


এই পৃষ্ঠায় একবার দেখুন xaprb.com/blog/2006/06/06/
কি-

উত্তর:


230

তুমি ব্যাবহার কর:

yourcommand  > /dev/null 2>&1

এটি ব্যাকগ্রাউন্ডে চালানো উচিত একটি অ্যাড &

yourcommand > /dev/null 2>&1 &

>/dev/null 2>&1মানে পুনর্নির্দেশ stdoutকরতে /dev/nullএবং stderrযেখানে জায়গা stdoutযে সময়ে পয়েন্ট

আপনি যদি stderrকনসোলে ঘটতে চান এবং কেবল আপনার কাছে stdoutগিয়ে /dev/nullব্যবহার করতে পারেন:

yourcommand 2>&1 > /dev/null

এই ক্ষেত্রে stderrআপনাকে পুনঃনির্দেশিত করা হয় stdout(উদাঃ আপনার কনসোল) এবং পরে মূল stdoutথেকে আপনাকে পুনঃনির্দেশিত করা হয়/dev/null

যদি প্রোগ্রামটি সমাপ্ত না হয় আপনি ব্যবহার করতে পারেন:

nohup yourcommand &

কোনও পরামিতি ছাড়াই nohup.out এ সমস্ত আউটপুট অবতরণ করে


উভয়ই কাজ করে তবে কিছুটা পার্থক্য রয়েছে, তবে মনে রাখবেন না
দুষ্টু করুন

আহ ঠিক আছে এটি পেয়েছে এবং অন্য সংস্করণটি যুক্ত করেছে
ad

যদি এটি কোনও বাশ ফাইলের শেষ কমান্ড হয় তবে একটি জিনিস আমি লক্ষ্য করেছি যে এটি কমান্ড কনসোলকে ছেড়ে দেয় যা প্রম্পট ছাড়াই ফাইল বলে।
ডেনিস

ইতোমধ্যে চলমান অ্যাপ্লিকেশনটির ইলিজ পুনঃনির্দেশিত আউটপুট সম্ভব ইমো সম্ভব নয়, বা কমপক্ষে সহজেই তা সম্ভব নয়, কারণ এর মাধ্যমে পুনঃনির্দেশটি dup2()সঙ্গে সঙ্গে fork()কিন্তু তার আগেই ঘটে exec*()। একবার exec*()প্রোগ্রামটি কার্যকর করে নিলে , শেলের সেই প্রক্রিয়াটির আউটপুট পুনর্নির্দেশ করার ক্ষমতা নেই। আমি ভুল হলে আমাকে সংশোধন করুন, তবে আমি এমন শেল সম্পর্কে জানি না যা এই জাতীয় কার্যকারিতা কার্যকর করেছে।
অশুভাদিতি

3

এগুলি উভয়ই পুনর্নির্দেশ করবে:

yourcommand  &> /dev/null

yourcommand  >& /dev/null

যদিও বাশ ম্যানুয়ালটি প্রথম পছন্দটিকে পছন্দ করে says

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