এটি জব নিয়ন্ত্রণ সহ যে কোনও শেলের ক্ষেত্রে সত্য হওয়া উচিত, যা (বেশিরভাগ অংশের জন্য) সত্যিকারের প্রাচীন শেলের সাথে ডিলিং না করে আপনি মর্যাদাবান হতে পারেন। এটি পসিএক্স স্ট্যান্ডার্ডে রয়েছে , তাই এমনকি dash
কাজের নিয়ন্ত্রণকে সমর্থন করে (যখন ইন্টারেক্টিভভাবে বা সাথে চালিত হয় -m
)।
ইন্টারেক্টিভ
- Ctrl+ zবর্তমানে অগ্রণীত প্রোগ্রাম স্থগিত করবে
bg
সর্বাধিক সাময়িক বরখাস্ত হওয়া প্রোগ্রামটির ব্যাকগ্রাউন্ড হবে
( bg %2
কাজের সংখ্যার সাথে ব্যবহার করুন , যা দিয়ে আপনি চেক করতে পারেন jobs
)
fg
সর্বাধিক সাময়িক বরখাস্ত কর্মসূচির অগ্রভাগ ground
ইন zsh
, আপনি fg
প্রম্পট থেকে অন্য Ctrl+ এর মাধ্যমে স্পষ্টতভাবে চালনার জন্য একটি কী বাঁধাই লিখতে পারেন z:
_zsh_cli_fg() { fg; }
zle -N _zsh_cli_fg
bindkey '^Z' _zsh_cli_fg
সুস্পষ্টভাবে bg
স্থগিতকরণের উপর চালানোর একটি চতুর উপায়ও সম্ভবত রয়েছে , তবে এটি বোকামি বলে মনে হচ্ছে; কমপক্ষে আমার জন্য, আমার Ctrl+ zব্যবহারের বেশিরভাগ কারণ হ'ল Ctrl+ cব্যর্থ হতে ব্যর্থ হয়েছে; আমি এটির kill %1
পরিবর্তে উদাহরণস্বরূপ অনুসরণ করতে চাই bg
, এবং আমি অবশ্যই হত্যার ডিফল্ট করতে চাই না! (এই যুক্তিবিজ্ঞান কেন আমি আর এই কী বাঁধাই ব্যবহার প্রসারিত: আমি উপর hammering করছি Ctrl+ + z! একটি প্রক্রিয়া বন্ধ করার শেষ জিনিস আমি এটা করতে চাই সারসংকলন হয়)
নন-ইন্টারেক্টিভ
আপনি যদি কোনও আলাদা শেল ইভেন্টে থাকেন (বা কোনও ভিন্ন ব্যবহারকারী, কখনও কখনও sudo
কমান্ড সহ ), আপনি সম্ভবত চাকরি সংখ্যা ব্যবহার করতে পারবেন না।
আপনি অন্য প্রক্রিয়াটির আইডি (পিআইডি) জানার পরেও অন্য প্রক্রিয়াটিতে কাজ করতে পারেন। আপনি পিআইডি পেতে পারেন pgrep …
, বা ps aux |grep …
(বা একই শেল থেকে jobs -l
, বা $!
) এবং আপনি চালাতে পারেন:
kill -STOP $PID # suspend
kill -CONT $PID # continue (resume)
আপনি যদি প্রক্রিয়া আইডিটি জানেন না এবং নাম দ্বারা প্রক্রিয়াটির অন্যান্য উদাহরণ স্থগিত করার বিষয়ে উদ্বিগ্ন না হন তবে আপনি এর মধ্যে একটিতে সংকেত পাঠাতে পারেন:
killall -STOP program_name
pkill -STOP program_name
pkill -f -STOP program_name_or_args
একটি CONT
একটি প্রোগ্রাম সংকেত সঙ্গে বন্ধ Ctrl+ + z(এবং bg
, 'ঘ) (পুরোভূমিতে) তার উন্নতি পুনরায় শুরু হবে একই যেন আপনি ছিল fg
এটা।
পুনরায়: স্ট্যান্ডার্ড ত্রুটি
এই প্রশ্নের সম্পাদনাটি স্ট্যান্ডার্ড ত্রুটি সম্পর্কে জিজ্ঞাসা করে:
প্রক্রিয়াটি স্ট্ডারকে আউটপুট দেয়, সুতরাং fg <jobid>
প্রসেসটি টার্মিনালে আউটপুট করার সময় আমি কীভাবে কমান্ডটি জারি করব ?
প্রশ্নে চাকরির উপাদানগুলি ব্যাকগ্রাউন্ডযুক্ত না থাকলে (বা পুরো কাজটি ব্যাকগ্রাউন্ড হয়, সম্ভবত kill -CONT
এটির মাধ্যমে ), স্থগিত হওয়ার সময় আপনি আসলে আউটপুট দেখতে পাবেন না।
যদি এটি এখনও ডেটা আউটপুট করে থাকে (এটি স্ট্যান্ডার্ড আউটপুট বা স্ট্যান্ডার্ড ত্রুটির ক্ষেত্রে) তবে এটি অবশ্যই আপনার টার্মিনালটি চাক্ষুষভাবে বিশৃঙ্খল করে তুলবে, তবে এটি আপনার ইনপুটটির অংশ না হওয়ায় output সমস্ত আউটপুট উপেক্ষা করা হবে। আপনি কোনও টাইপস প্রবেশ করেননি তা জানার জন্য এটি আরও কঠিন হতে পারে, তবে (অন্ধভাবে) টাইপিংয়ের পক্ষে fg
Enterযথেষ্ট হওয়া উচিত (যদি না আপনার একাধিক কাজ থাকে এবং প্রশ্নে সর্বাধিক সাম্প্রতিক না হয়, সেক্ষেত্রে আপনাকে অবশ্যই কাজের বর্ণনাকারীর প্রয়োজন হবে )।
আপনার যদি কাজের বিবরণকারীর সন্ধানের প্রয়োজন হয় তবে STOP
উপরের অ-ইন্টারেক্টিভ পদ্ধতিগুলির মাধ্যমে সিগন্যালটি প্রেরণের জন্য অন্য টার্মিনালটি ব্যবহার করুন । এটি আপনার প্রদর্শন মুক্ত করে তুলবে (সম্ভবত Enterকয়েকবার হিট করুন বা রান করুন clear
বা Ctrl+ L) যাতে আপনি jobs
চাকরীর বর্ণনাকারী সন্ধান করতে ছুটে যেতে পারেন এবং তারপরে সেই সংখ্যাটি fg %N
কোথায় যায় runN