এই প্রশ্নের অনুসরণ হিসাবে , আমি জানতে চাই যে কোন প্রোগ্রামে আমি চালিত করেছি তার STDOUT এবং STDERR কোথায় disown -h
পুনর্নির্দেশিত হয়েছে?
এই প্রশ্নের অনুসরণ হিসাবে , আমি জানতে চাই যে কোন প্রোগ্রামে আমি চালিত করেছি তার STDOUT এবং STDERR কোথায় disown -h
পুনর্নির্দেশিত হয়েছে?
উত্তর:
disown
প্রোগ্রামগুলি STDOUT / ERR পরিবর্তন করে না। আপনি যেখানেই তাদের পুনঃনির্দেশ করেছেন (সেখানে ব্যবহার করে >
) তারা সেখানে যাবে। আপনি যদি এগুলি পুনর্নির্দেশ না করেন তবে তারা প্রোগ্রামটি শুরু করার টার্মিনালে যেতে থাকবে (আপনি যে টার্মিনালটি বন্ধ না করে, সে ক্ষেত্রে এগুলি ফেলে দেওয়া হবে)।
উদাহরণস্বরূপ, একটি টার্মিনালে এটি চালান:
bash -c 'while true; do sleep 1; echo hi; done' &
এটি প্রতি সেকেন্ডে "হাই" মুদ্রণ করবে (এবং আপনাকে ভয়ঙ্কর বিরক্ত করবে ;-))। আপনি যদি disown
প্রোগ্রামটি শুরুর পরে করেন তবে "হাই" গুলি কেবল চালিয়ে যাবে। আপনাকে শেলটির পিআইডি (যেমন পিএস ব্যবহার করে) খুঁজে বের করতে হবে এবং এটি বন্ধ করতে এটি হত্যা করতে হবে।
সম্পাদনা:
মন্তব্যের ভিত্তিতে, সম্ভবত আপনি যা করতে চান তা হ'ল প্রোগ্রামটি সম্পাদনার পরে disown
এটি চালু হওয়া টার্মিনালটি বন্ধ করে দেওয়ার পরে প্রোগ্রামটির আউটপুটটি পুনরুদ্ধার করা This এই প্রশ্নটিতে এটি ব্যাখ্যা করা হয়েছে: টিসিএস-এর সাথে বাস্তব-পরবর্তী রিমোট নোহআপ ( কোয়াকোটা কোয়েস্টকে ধন্যবাদ))