আপনি যদি ইতিমধ্যে '&' ব্যবহার করে কাঁটাচ্ছেন তবে আপনার কখন 'নোহপ' দরকার?


26

প্রথম এই প্রশ্নটি সম্পর্কিত তবে অবশ্যই খুব সুন্দর এই প্রশ্নের মতো নয়:

নোহুপ, অস্বীকার করা এবং এর মধ্যে পার্থক্য

আমি কিছু বুঝতে চাই: যখন আমি '&' করি, আমি ঠিক কাঁটাচামচ করছি?

"নোহুপ ... &" করা কি কখনও উপকারী বা সহজ এবং যথেষ্ট?

কেউ কি এমন কেস দেখাতে পারে যেখানে আপনি '&' ব্যবহার করছেন এবং এখনও 'নোপআপ' ব্যবহার করতে চান?


1
আপনি কি গৃহীত উত্তর এবং এর মন্তব্যের থ্রেডটি পড়েছেন? তারা কি nohupকরে তা ব্যাখ্যা করে। আপনি কোন অংশে বিভ্রান্ত হয়েছেন?
গিলস 'অশুভ হওয়া বন্ধ করুন'

3
@Gilles: এটি সুস্পষ্ট হতে পারে আপনি , কারণ আপনি (আপনার প্রতিনিধির দেখা) এই জিনিস সাথে পরিচিত হতে ঘটতে ... তবে শুরুর জন্য, লিংক গ্রহণযোগ্য উত্তর আমি করা হয়নি একটি শব্দ বলে না ব্যবহার সম্পর্কে নোহপ এবং 'এবং' উভয়ই ... আমি যথেষ্ট নিশ্চিত যে আমার প্রশ্নটি যথেষ্ট পরিষ্কার এবং অন্যটির থেকে যথেষ্ট আলাদা এবং এখানে দুটি দুর্দান্ত উত্তর প্রমাণিত করে বলে মনে হচ্ছে; ) এছাড়াও, আপনি কি সত্যিই বোঝাচ্ছেন যে আমি অন্য প্রশ্নের সাথে যুক্ত করতে ব্যথাটি নিয়েছিলাম, কিন্তু গৃহীত উত্তরটি না পড়ে !?
সিড্রিক মার্টিন

উত্তর:


32

প্রথমত, প্রতিবার আপনি যখন কোনও কমান্ড কার্যকর করেন, আপনি শেলটি একটি নতুন প্রক্রিয়া তৈরি করবেন, আপনি এটি চালাবেন কিনা তা নির্বিশেষে &&কেবলমাত্র আপনি এটি পটভূমিতে চালাচ্ছেন।

নোট করুন এটি খুব সঠিক নয়। কিছু কমান্ড, যেমন cdশেল ফাংশন এবং সাধারণত একটি নতুন প্রক্রিয়া কাঁটাচামচ করে না। বাহ্যিক কমান্ড বা শেল ফাংশন type cmdকিনা তা সাধারণত আপনাকে জানায় cmdtype typeআপনাকে বলে যে typeনিজেই একটি শেল ফাংশন।

nohupঅন্যরকম। এটি নতুন প্রক্রিয়াটিকে উপেক্ষা করতে বলে SIGHUP। এটি প্যারেন্ট শেল বন্ধ হয়ে গেলে কার্নেলের দ্বারা প্রেরিত সিগন্যাল।

আপনার প্রশ্নের উত্তর দেওয়ার জন্য নিম্নলিখিতটি করুন:

  1. রান emacs & (ডিফল্টরূপে পৃথক এক্স উইন্ডোতে চালানো উচিত)
  2. প্যারেন্ট শেল উপর, চালান exit

আপনি লক্ষ্য করবেন যে emacsপটভূমিতে চালানো সত্ত্বেও উইন্ডোটি মারা গেছে। এটি ডিফল্ট আচরণ এবং nohupএটি সংশোধন করার জন্য অবিকল ব্যবহার করা হয়।

ব্যাকগ্রাউন্ডে একটি চাকরি চালানো ( &বা bgঅন্যান্য শেলগুলির সাথে অন্যান্য বাক্য গঠনও রয়েছে বাজি রেখেছি) এটি একটি শেল বৈশিষ্ট্য, আধুনিক সিস্টেমগুলির মাল্টিটাস্কের ক্ষমতা থেকে উদ্ভূত। প্রত্যেক প্রোগ্রাম আপনি লঞ্চ করতে চাই, আধুনিক শাঁস জন্য একটি নতুন শেল উদাহরণস্বরূপ forking পরিবর্তে ( bash, zsh, ksh, ...) প্রোগ্রাম (বা একটি তালিকা পরিচালনা করার ক্ষমতা থাকবে কাজ )। তাদের মধ্যে একবারে কেবল একটিই অগ্রভাগে থাকতে পারে , যার অর্থ এটি শেল ফোকাস পায়। আমি আশা করি যে কেউ অগ্রভাগে চলমান প্রক্রিয়া এবং ব্যাকগ্রাউন্ডের মধ্যে একটির মধ্যে প্রধান পার্থক্য সম্পর্কে আরও প্রসারিত করতে পারে (মূলটি stdin/ এটিকে অ্যাক্সেস করা হচ্ছে stdout)।

যে কোনও ক্ষেত্রে, এটি শিশু প্রক্রিয়াটির যেভাবে প্রতিক্রিয়া দেখায় তাতে কোনও প্রভাব ফেলবে না SIGHUPnohupআছে।


দুর্দান্ত জবাবের জন্য আপনার দু'জনের কাছেই +1 ... তবে আমি এখনও বিভ্রান্ত ... আমার প্রশ্নের উত্তর দেওয়ার আগে আমি চেষ্টা করেছিলাম: সম্ভবত আমার (খুব পুরানো) ডিবিয়ান লিনাক্স সেটআপটি সঠিকভাবে কনফিগার করা হয়নি তবে যদি আমি "ইম্যাকস এবং" "এবং তারপরে" প্রস্থান "টাইপ করুন, কেবলমাত্র আমার এক্সটার্মই প্রস্থান করবে: ইমাস সেখানে থাকবে।
সিড্রিক মার্টিন

ইমাসগুলি যথেষ্ট জটিল যে এটি নিজেরাই সাইনআপ পরিচালনা করতে পারে। এটি কেবলমাত্র ডিফল্টরূপে SIGHUP এ প্রস্থান করার প্রক্রিয়া। এনটিপিডি বা ইনডেডি'র মতো প্রচুর 'ডেমন' প্রোগ্রামগুলি প্রস্থান করার পরিবর্তে SIGHUP এ তাদের কনফিগারেশনটি পুনরায় পড়বে। আমি নিজে একজন ভিম লোক, সুতরাং কোনও ইমাস নিয়ে আমার বেশি অভিজ্ঞতা নেই।
ব্রুস এডিগার

3
ইমাস সম্পর্কে বিশেষ কিছু নেই। শেলটি সাধারণত শেলটি সাধারণত SIGHUPপায় যখন তার শিশু প্রসেসগুলিতে প্রেরণ করে SIGHUP, যখন শেলটি স্বাভাবিকভাবে প্রস্থান করে না। বাশের একটি বিকল্প রয়েছে huponexitযা SIGHUPএটি প্রস্থান করার পরে বাচ্চাদের কাছে প্রেরণে কারণ করে , তবে এটি ডিফল্টরূপে সক্ষম হয় না। gnu.org/software/bash/manual/bashref.html#Signals
কিথ থম্পসন

হ্যালো. প্রথমত, দুর্দান্ত ব্যাখ্যা। আমি একটি প্রক্রিয়া চালিয়ে আপনার থিসিস যাচাই করার চেষ্টা করেছি এবং চালিয়ে &আমার শেলটি বন্ধ করে দিয়েছি exit। প্রক্রিয়া এখনও চলছে। কেন এটি হত্যা করা হয়নি তার কোনও ধারণা? নাকি আমি এখানে কিছু মিস করছি?
আলী ইলমাজ

আপনি যে প্রক্রিয়া চালাচ্ছেন তা কি?
রাহমু

16

এটা কি কখনও উপকারী nohup ... &? হ্যাঁ। আপনি যদি কেবল "ব্যাকগ্রাউন্ডে" দিয়ে একটি প্রক্রিয়া শুরু করেন তবে &সেই নতুন প্রক্রিয়াটির মূল শেলটির "প্রক্রিয়া গোষ্ঠী" তে এখনও সদস্যতা রয়েছে। যদি সেই শেল বা প্রক্রিয়া গোষ্ঠী নির্দিষ্ট সংকেত পায় (উদাহরণস্বরূপ SIGHUP), ডিফল্টরূপে তারা প্রস্থান করে। এর অর্থ হ'ল আপনি যদি &উইন্ডোটি বন্ধ করেন, আপনি এক্সটার্ম, বা আরএক্সভিটি বা অন্য কোনও উইন্ডোটিং টার্মিনাল এমুলেটর দ্বারা শুরু শেল থেকে একটি প্রক্রিয়া চালান , ব্যাকগ্রাউন্ড প্রক্রিয়াটি একটি সাইনআপ হয়। বেশিরভাগ ঘটনাচক্রে লিখিত কোডগুলি SIGHUP পরিচালনা করে না এবং তাই প্রস্থান করে।

আপনি যদি করেন nohup ... &, nohupকমান্ডটি উপেক্ষা করার জন্য SIGHUP সেট করে এবং তারপরে কমান্ডটি কার্যকর করে। নতুনভাবে সম্পাদিত কমান্ডটি nohupযদি কমান্ড নিজেই কিছু সংকেত পরিচালনা না করে তবে এই সেটআপটিকে সংকেতটি মাস্ক করে রাখে । যদি আপনি xterm বা rxvt বা অন্য কোনও কিছু বন্ধ করেন, কার্নেল কমান্ডের প্রক্রিয়াতে SIGHUP সরবরাহ করে, যা উপেক্ষা করা হয়। এটি চলতে থাকে।

একটি এরকম nohupকমান্ড তে এটি আপনি xterm বন্ধ, অথবা আপনি বন্ধ লগ ইন করুন পর চলমান রাখতে করতে পারবেন।


দুঃখিত - আপনি আমাকে হারিয়েছেন আপনি কি এই বলে যে ব্যবহার &সঙ্গে nohupনির্দিষ্ট স্থানেই কমান্ড চলমান রাখে যেখানে শুধুমাত্র ব্যবহার nohupনা? এটি এখানে উত্তরের সাথে সাংঘর্ষিক বলে মনে হচ্ছে: unix.stackexchange.com/a/288064/1822
মাইক বি

2
@ মাইকেবি - "ব্যাকগ্রাউন্ডে" কমান্ডটি রাখতে "এবং" সাধারণ কাঁটাচামচ / সেট জিনিস / এক্সিকিউটিভ সিস্টেম কল করে। এটি হ'ল কমান্ডটি অবিচ্ছিন্নভাবে চলমান ron nohupআগে কিছু জিনিস আছে exec()forked প্রক্রিয়া নির্দিষ্ট সংকেত উপেক্ষা করতে সিস্টেম কল। সুতরাং, হ্যাঁ, একটি "&" কোনও নির্দিষ্ট পরিস্থিতিতে কোনও কমান্ড চালানোর অনুমতি দেয় যা কোনও সরল পুরানো nohupনা করে। নোহপ করানো শেলের সাথে যুক্ত এক্সটারেম বন্ধ করা বা লগিং বন্ধ করার মতো।
ব্রুস এডিগার

-1

আপনি যদি লিনাক্স অপারেটিং সিস্টেমে ব্যাকগ্রাউন্ডে (একটি প্রত্যয় সহ এবং এর সাথে) চালনা করেন এবং লগআউট করার পরেও এটি চলতে থাকবে: এর সাথে চেষ্টা করুন:

  ping google.com > ping_result  &

লগইন করার পরে আউটপুট ফাইলে লাইনগুলির সংখ্যা পরীক্ষা করে নিন ping_resultযা বর্ধমান রাখবে মানে এটি এখনও চলছে যদিও এটি বলা হবে যে এটি বন্ধ হয়ে যাবে। তাহলে nohupকমান্ডের ব্যবহার কী ?

অন্য দৃশ্যের ==> উপরে উল্লিখিত হিসাবে nohup emac &-> যা emacসিস্টেম লগআউটের পরে চলতে থাকবে তবে এটি লগইন ব্যাক করার পরে চলমান দেখায় না।

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