স্টুডাউটে নোহপ পুনর্নির্দেশ করুন


14

নুহপ দিয়ে কোনও প্রক্রিয়া শুরু করা, কোনও ফাইলের পরিবর্তে স্টাডআউটে লিখতে দেওয়া কি সম্ভব? অথবা ফাইল এবং স্ক্রিনে হতে পারে?

nohup python start.py &

এতে লিখেছেন nohup.out, তবে আমি এটি স্ক্রিনে আউটপুট করতে চাই, সংযোগটি ভেঙে গেলে নোহপ কেবল হেজ হিসাবে বোঝানো হয়।


কিন্তু সংযোগ বিরতিতে যখন আপনার প্রোগ্রামটি আউটপুট দেয় তখন কী ঘটে?
দোলা

উত্তর:


4
  1. nohup python start.py & tail -f nohup.outtail -fনিহত এবং স্বেচ্ছায় পুনরায় আরম্ভ করা যেতে পারে।

  2. screen python start.py এবং ডিসি / পুনরায় সংযোগ করতে ইচ্ছুক।


10

থেকে 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 প্রক্রিয়াটি মারা যাওয়ার পরিবর্তে প্রক্রিয়াটি ছেড়ে যেতে বলার জন্য শেল-বিল্টিন চালান ।


1
একটি দুর্দান্ত সংযোজন: নোহপ কমান্ডটি যদি কোনও ফাইলের নাম দিয়ে ইতিমধ্যে শুরু করা হয়, তবে আপনি ফাইলটিতে tail -f filenameকী লেখা আছে তা দেখতে ব্যবহার করতে পারেন।
হেনেস

কাজ করে না, একবার সংযোগ বন্ধ হয়ে গেলে ফাইলটি আর লেখা হয় না
দাউদ তাগাওহী-নেজাদ

আপনি ঠিক বলেছেন: আমি প্রশ্নের উত্তর দিয়েছি (টার্মিনালে আউটপুট প্রেরণ করুন) তবে উদ্দেশ্যটিকে পরাজিত করেছি। আমি সেই অনুযায়ী আমার উত্তরটি আবার লিখেছি।
dsh

-1
vladimir@lin-mint-cin:~$ tty<br>
/dev/pts/8<br>
vladimir@lin-mint-cin:~$ ln -sf /dev/pts/8 nohup.out<br>
vladimir@lin-mint-cin:~$ nohup ls<br>
nohup: ввод игнорируется, вывод добавляется в 'nohup.out'<br>
2019-05-31-090159.jpg    giphy.gif        nim_porojects   sketchbook
Aptana_Studio_Workspace  IdeaProjects         nohup.out       target
Desktop          jack_capture_01.wav  Pictures        Templates
Documents        lib              Postman         tmp
Downloads        mad              Projects        trace.edn
eclipse          Mail             prolog_ws       uinfild_hill-iskusstvo_shemotehniki_tom_1_izd4-e-1489315100.pdf
eclipse-dsl-workspace    Music            proxy-secret    Videos
eclipse-workspace    mygolo           Public          workspace-dltk
erlang_ex        my_golo_ws       rust-workspace  проекты
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.