উত্তর:
আপনি যদি কোনও স্ক্রিপ্ট শুরু করতে চান, এটি আপনার টার্মিনালটিকে বিরক্ত করে আউটপুট চালিয়ে না নিয়ে তার সাথে ইন্টারঅ্যাক্ট করার জন্য এটি পরে এনে দেয়, আপনি টার্মিনাল মাল্টিপ্লেক্সারের দিকে একবার নজর দিতে চাইতে পারেন। আপনার সিস্টেমের উপর নির্ভর করে আমি সুপারিশ করব tmux
বা screen
। সেগুলি নীচের লিঙ্কগুলিতে কীভাবে ব্যবহার করবেন সে সম্পর্কে আপনি কিছু তথ্য পেতে পারেন:
tmux:
পর্দা:
সম্পাদনা: tmux প্রাইমারের জন্য লিঙ্ক যুক্ত
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
) বা কাঁটাচামচ করা + প্রস্থান করা (তবে তারপরে পিআইডি পরিবর্তন হয়, সুতরাং এটি আসল শিশু নয়)।
আমি টার্মিনাল মাল্টিপ্লেক্সারের ব্যবহারকে দ্বিতীয় করব, তবে টিএমউক্স , স্ক্রিন নয়। স্ক্রিনটি সমস্ত উদ্দেশ্য এবং উদ্দেশ্যে, অবিস্মরণীয়। এর কনফিগারেশনটি একটি অন্ধকার শিল্প যা সম্ভবত প্রথম নেক্রোনমিকনের একটি পরিশিষ্টে রেকর্ড করা হয়েছিল। আপনার নিজের কনফিগারেশন লেখার চেষ্টা করা চথুলুর এক ঝলক হিসাবে। সিরিয়াসলি। লোকের .স্ক্রিনআরসি ফাইলগুলি চারদিকে দেখুন । নিশ্চিত হওয়ার জন্য, কোনও কনফিগার ফ্ল্যোর পর্দার ঘৃণার মধ্যস্থতার উপায় রয়েছে। Byobu, নশ্বর ব্যবহারকারী এবং অপবিত্র কোড মধ্যে ঘোমটা হিসাবে একটি প্রশংসনীয় পেশা আছে। এটি বুদ্ধিমান রঙ, একটি মেনু ইন্টারফেস এবং সম্ভবত সবচেয়ে গুরুত্বপূর্ণভাবে একটি স্ট্যাটাস বার নিয়ে আসে।
তবে আমি যেমন বলেছি, আমি পরিবর্তে tmux এর প্রস্তাব দিই । এটি এখনও কিছু ছোট কনফিগারেশন প্রয়োজন, তবে এটি ভাল নথিভুক্ত করা হয়েছে , এবং আপনার কনফিগারেশন ফাইলটি জিব্বার মত দেখাচ্ছে না। এছাড়াও, আপনি রঙ এবং একটি স্ট্যাটাস বার দিয়ে শুরু করেন। আমার স্ক্রিনসিআর এবং tmux.conf ফাইলের সাথে তুলনা করুন:
যদি আপনি কেবল লাইভ টুপি আউটপুটটি দেখতে আগ্রহী হন তবে এটি আপনার উপযুক্ত হতে পারে:
nohup script.sh 2>&1 script.out &
# later:
tail -f script.out
লিনাক্সের যে কোনও কমান্ড &
সর্বশেষে যুক্ত ' ' সহ পটভূমিতে প্রেরণ করা যায় ।
সমস্ত পটভূমি কাজ দেখতে, আপনি ইস্যু করতে পারেন 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.