অগ্রভাগে Nohup কাজ আনুন


14

নিম্নলিখিত nohupফাঁসি কার্যকর করুন:

nohup script.sh > script.out &

টার্মিনালটি লগ-অফ, পুনরায় সংযোগ স্থাপন, প্রক্রিয়াটিকে অগ্রভাগে ফিরিয়ে আনা এবং কীবোর্ডটি ব্যবহার করে এর সাথে ইন্টারঅ্যাক্ট করার কোনও উপায় আছে কি?

উত্তর:


7

আপনি যদি কোনও স্ক্রিপ্ট শুরু করতে চান, এটি আপনার টার্মিনালটিকে বিরক্ত করে আউটপুট চালিয়ে না নিয়ে তার সাথে ইন্টারঅ্যাক্ট করার জন্য এটি পরে এনে দেয়, আপনি টার্মিনাল মাল্টিপ্লেক্সারের দিকে একবার নজর দিতে চাইতে পারেন। আপনার সিস্টেমের উপর নির্ভর করে আমি সুপারিশ করব tmuxবা screen। সেগুলি নীচের লিঙ্কগুলিতে কীভাবে ব্যবহার করবেন সে সম্পর্কে আপনি কিছু তথ্য পেতে পারেন:

tmux:

পর্দা:

সম্পাদনা: tmux প্রাইমারের জন্য লিঙ্ক যুক্ত


+1 দুর্দান্ত সরঞ্জাম আমি জানতাম না। অনেক ধন্যবাদ.
আদম মতান

19

nohup টার্মিনাল থেকে কোনও আদেশকে সংযোগ বিচ্ছিন্ন করে না, এটি আপনার স্ক্রিপ্টটিকে উপেক্ষা করেSIGHUPএবংstdout/stderrএকটি ফাইলেপুনর্নির্দেশকরেnohup.out, যাতে কমান্ডটি লগ আউট করার পরে পটভূমিতে চলতে পারে।

nohupকমান্ডটি স্বয়ংক্রিয়ভাবে পটভূমিতে চালিত করে না। একটি অবশ্যই কমান্ড লাইনটি একটি দিয়ে স্পষ্ট করে তা করতে হবে &

$ nohup ./script.sh &
[1] 3390
$ nohup: ignoring input and appending output to ‘nohup.out’

jobsবর্তমানে চলমান কাজ এবং তাদের স্থিতি মুদ্রণ করতে পারে। যদি কমান্ডটি jobsএটি না খুঁজে পেতে পারে, তবে এটি আর সেই শেলের কোনও শিশু প্রক্রিয়া নয় ।

$ jobs 
[1]+  Running                 nohup ./script.sh &

আবার ব্যবহার ব্যাশ মধ্যে পুরোভাগে একটি ব্যাকগ্রাউন্ড কাজ আনতে যাবে fgএমনকি যদি এটা দিয়ে চালানো হয় nohup। কিন্তু এটি আউটপুট পুনঃনির্দেশকেnohup.out পরিবর্তন করবে না , যা এখনও ফাইলে যাবে

$ fg
nohup ./script.sh

যদি আপনি শেল / টার্মিনালটি বন্ধ করেন বা লগ অফ করেন, আপনার আদেশটি আর সেই শেলের শিশু নয়। এটি initপ্রক্রিয়াভুক্ত। আপনি যদি অনুসন্ধান করেন তবে pstreeদেখতে পাবেন এটি এখন প্রক্রিয়া 1 ( init) এর মালিকানাধীন । এটিকে অগ্রভাগে ফিরিয়ে আনা যায় না কারণ অগ্রভাগ আর বিদ্যমান নেই।


If the command jobs cannot find it, then it is no longer a child process of that shell.এটি ভুল: কীভাবে: দেখুন এই ক্রমটি চেষ্টা করুন sleep 100 & disown ; echo Jobs:; jobs; echo Tree:; pstree -ap $$। এই কমান্ডের পরে আপনি এখনও sleepএকই পিআইডি মুদ্রিত হয়ে কাজটি দেখতে পাবেন যখন আপনি এটি তৈরি করেছেন, যখন jobsকিছুই প্রিন্ট করবেন না। শিশু প্রক্রিয়াটি কেবলমাত্র তার সন্তানের হওয়া বন্ধ করে দিতে পারে তার পিতামাতাকে হারানো (তারপরে অনাথের সন্তানের হয়ে যায় init) বা কাঁটাচামচ করা + প্রস্থান করা (তবে তারপরে পিআইডি পরিবর্তন হয়, সুতরাং এটি আসল শিশু নয়)।
রুস্লান

4

আমি টার্মিনাল মাল্টিপ্লেক্সারের ব্যবহারকে দ্বিতীয় করব, তবে টিএমউক্স , স্ক্রিন নয়। স্ক্রিনটি সমস্ত উদ্দেশ্য এবং উদ্দেশ্যে, অবিস্মরণীয়। এর কনফিগারেশনটি একটি অন্ধকার শিল্প যা সম্ভবত প্রথম নেক্রোনমিকনের একটি পরিশিষ্টে রেকর্ড করা হয়েছিল। আপনার নিজের কনফিগারেশন লেখার চেষ্টা করা চথুলুর এক ঝলক হিসাবে। সিরিয়াসলি। লোকের .স্ক্রিনআরসি ফাইলগুলি চারদিকে দেখুন । নিশ্চিত হওয়ার জন্য, কোনও কনফিগার ফ্ল্যোর পর্দার ঘৃণার মধ্যস্থতার উপায় রয়েছে। Byobu, নশ্বর ব্যবহারকারী এবং অপবিত্র কোড মধ্যে ঘোমটা হিসাবে একটি প্রশংসনীয় পেশা আছে। এটি বুদ্ধিমান রঙ, একটি মেনু ইন্টারফেস এবং সম্ভবত সবচেয়ে গুরুত্বপূর্ণভাবে একটি স্ট্যাটাস বার নিয়ে আসে।

তবে আমি যেমন বলেছি, আমি পরিবর্তে tmux এর প্রস্তাব দিই । এটি এখনও কিছু ছোট কনফিগারেশন প্রয়োজন, তবে এটি ভাল নথিভুক্ত করা হয়েছে , এবং আপনার কনফিগারেশন ফাইলটি জিব্বার মত দেখাচ্ছে না। এছাড়াও, আপনি রঙ এবং একটি স্ট্যাটাস বার দিয়ে শুরু করেন। আমার স্ক্রিনসিআর এবং tmux.conf ফাইলের সাথে তুলনা করুন:


0

যদি আপনি কেবল লাইভ টুপি আউটপুটটি দেখতে আগ্রহী হন তবে এটি আপনার উপযুক্ত হতে পারে:

nohup script.sh 2>&1 script.out &
# later:
tail -f script.out

0

লিনাক্সের যে কোনও কমান্ড &সর্বশেষে যুক্ত ' ' সহ পটভূমিতে প্রেরণ করা যায় ।

সমস্ত পটভূমি কাজ দেখতে, আপনি ইস্যু করতে পারেন jobs

jobs
[1]  + suspended  nohup sh zookeeper-server-start.sh ../config/zookeeper.properties
[2]    running    nohup sh kafka-server-start.sh ../config/server.properties
[3]  - running    nohup sudo mongod --dbpath=/var/lib/mongodb

আমি এখানে ব্যাকগ্রাউন্ডে 3 টি কাজ চালাচ্ছি: চিড়িয়াখানা, কাফকা এবং মঙ্গো ডেমন। [1], [2] এবং [3] এই কাজের জন্য স্বতন্ত্র কাজের নম্বর।

আপনি সেই কাজটি ব্যবহার করে অগ্রভাগে আনতে পারেন fg %$taskNumber.

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