থেকে man nohup
:
যদি স্ট্যান্ডার্ড ইনপুটটি টার্মিনাল হয় তবে এটিকে / dev / নাল থেকে পুনর্নির্দেশ করুন। যদি মান আউটপুট টার্মিনাল, সংযোজন করতে আউটপুট nohup.out
যদি সম্ভব হয়, $HOME/nohup.out
অন্যথায়। যদি স্ট্যান্ডার্ড ত্রুটিটি টার্মিনাল হয় তবে এটি স্ট্যান্ডার্ড আউটপুটে পুনর্নির্দেশ করুন। ফলকে আউটপুট সংরক্ষণ করতে, ব্যবহার করুন nohup COMMAND > FILE
।
(মন্তব্যের ভিত্তিতে সম্পূর্ণরূপে সংশোধিত)
শেল থেকে বেরিয়ে আসা বা টার্মিনালটি বন্ধ করার সময়, শিশু প্রসেসগুলি SIGHUP প্রেরণ করা হবে (হ্যাঙ্গআপ, নামটি সেই সময় থেকেই উদ্ভূত হবে যখন টার্মিনালগুলি ইউনিক্স কম্পিউটারে ডায়াল করবে) তাদের জানাতে যে টার্মিনালটি নেই দীর্ঘ সংযুক্ত। অতিরিক্তভাবে, শেল প্রক্রিয়াটি শেষ হয়ে গেলে, শিশু প্রক্রিয়াটির স্টিডিন, স্টডআউট এবং স্টডার স্ট্রিমগুলি বন্ধ হয়ে যাবে। সাধারণত এটির ফলে শিশু প্রক্রিয়াটি মারা যায়। সাধারণত এটি একটি ভাল জিনিস কারণ এটি কোনও ব্যবহারকারীর সাথে চলমান প্রক্রিয়াগুলি এড়িয়ে চলে।
nohup
প্রোগ্রামটির উদ্দেশ্য শেলটি শেষ হওয়ার পরে এবং টার্মিনালটি সংযোগ বিচ্ছিন্ন হওয়ার পরেও প্রক্রিয়াটি চালিয়ে যাওয়া। যেমনটি, তার আউটপুটটিকে টার্মিনালে পরিচালিত করা উদ্দেশ্যটিকে সম্পূর্ণ পরাস্ত করে। আমার মূল উত্তর ( nohup COMMAND | cat
) সহায়ক ছিল না কারণ: টার্মিনালটি বন্ধ হয়ে গেলে, বিড়ালের আউটপুট বন্ধ হয়ে যায় এবং তাই বিড়াল মারা যায় যা পাইপটি ভেঙে দেয় এবং নোহুপ প্রক্রিয়াতে একটি সিগপাইপ প্রেরণ করে যার ফলে এটি মারা যায়। উদ্দেশ্যটির কথা চিন্তা না করেই আমি প্রশ্নের উত্তর দিয়েছিলাম।
আপনার উদ্দেশ্য অর্জন করতে, nohup COMMAND > FILE
সরাসরি আউটপুট থেকে ফাইলের নাম নির্বাচন করতে চালান । তারপরে tail -f FILE
টার্মিনালে আউটপুট দেখতে ব্যবহার করুন।
একইভাবে, কেউ নিম্নলিখিত শেল কনস্ট্রাক্ট ব্যবহার করতে পারে: COMMAND >FILE 2>&1 </dev/null &
একটি কমান্ড চালাতে যার স্টডিও স্ট্রিমগুলি টার্মিনালের সাথে সংযুক্ত নয় এবং টার্মিনালটি বন্ধ হওয়ার পরে চলতে পারে। অতিরিক্তভাবে, zsh এ, disown
শেলটি শেষ হওয়ার পরে zsh প্রক্রিয়াটি মারা যাওয়ার পরিবর্তে প্রক্রিয়াটি ছেড়ে যেতে বলার জন্য শেল-বিল্টিন চালান ।