shell job controls (دستور fg bg jobs nohup)
منظور از shell job از کاv انداختن و راه اندازی مجدد یک پروسس یا ازبین بردن و یا به پشت صحنه بردن یک پروسس در ترمینال است
jobs = برایه دیدن کار هایه پشت صحنه
fg = برایه رویه صحنه اوردن کاری که در پشت صحنه است
bg = برایه رستارت کردن کاری که در پشت صحنه است
nohup = برایه ازبین نرفتن کاری به هنگام بستن ترمینال
منظور از فرستادن یک کار (( پروسس )) به پشت صحنه
فرض کنین تو ترمینال دستور firefox رو میزنین یا مثلا دستور nautilus وقتی که یکی از این دو دستور رو میزنین نرم افزار مربوطه رو صفحه ظاهر میشود و یک سری اطلاعاتی رو تو ترمینال مینویسد و عملا ترمینال رو برایه زدن دستورات دیگر غیر قابل مصرف میکند . حالا برایه این که ترمینالتون در این مواقع قابل استفاده باشد اون نرم افزار یا پروسس رو به پشت صحنه میفرستیم
مثال:
مراحل کار :
اول nautilus رو اجرا میکنیم
دوم به وسیله کلید ترکیبی Ctrl+z از کار میندازیمش و
سوم به وسیله ی دستور bg رستارتش میکنیم تا شروع به کار کند
کد:
alieblice@/$ sudo nautilus
Initializing nautilus-open-terminal extension
Initializing nautilus-gdu extension
Initializing nautilus-image-converter extension
^Z
[1]+ Stopped sudo nautilus
alieblice@/$
اگر الان دستور jobs رو بزنین خروجی شبیه زیر رو میبینین
کد:
alieblice@/$ jobs
[1]+ Stopped sudo nautilus
alieblice@/$
همون طور که میبینین کلمه Stopped رو نوشته که نشون از ازکار افتادن این پروسس ((در اینجا به وسیله Ctrl+z )) هست که برایه راه اندازیش از دستور bg به همراه شماره کار (پروسس) که در این جا [1] میباشد استفاده میکنیم
کد:
alieblice@/$ bg 1
[1]+ sudo nautilus &
alieblice@/$
حالا اگر دستور jobs رو بزنین میبینین که از کلمه Runnig استفاده شده است
کد:
alieblice@/$ jobs
[1]+ Running sudo nautilus &
alieblice@/$
اگر خاستین nautilus رو دوباره به رویه صحنه بیارین از fg استفاده کنین به همراه شمارش
کد:
alieblice@/$ fg 1
sudo nautilus
alieblice@/$
اجرا کردن یک پروسس که به طور خود کار به پشت صحنه برود
برایه این کار در پایان دستورتون از حرف & استفاده کنین
مثال:
بعد از زدن دستور به همراه & یک بار دکمه enter رو بزنین
کد:
alieblice@/$ sudo nautilus&
[1] 7661
alieblice@/$ Initializing nautilus-open-terminal extension
Initializing nautilus-gdu extension
Initializing nautilus-image-converter extension
alieblice@/$
دستور jobs
در مورد jobs این جا کامل توضیح داده ولی چون بیشتر چیزایی که گفته بود کار نمیکرد من فقط دو تا از اپشناشو میگم
Help -
همون طور که در بالا دیدین دستور jobs برایه دیدن کارهایه پشت صحنه هستش
مثال:
کد:
alieblice@/$ jobs
[1]+ Running sudo nautilus &
alieblice@/$
توضیح چند تا از اپشن ها
از l- برایه دیدن job number, current job, process group ID
از p- برایه دیدن pid
دستور nohup
از این دستور برایه زمانی که یک پروسس رو در ترمینال ایجاد کردیم و میخایم که بابسته شدن ترمینال پروسسمون از بین نره استفاده میکنیم
در nohup
خروجی ها در $HOME/nohup.out
اررور ها در خود ترمینال
و ورودی ها :
If standard input is a terminal, redirect it from /dev/null
نکته : همیشه با بسته شدن ترمینال پروسس هامون از بین نمیره مثلا در مثال هایه nautilus بالا اگه nautilus پشت صحنه باشه از بین نمیره
مثال :
کد:
alieblice@~$ sudo nohup firefox
nohup: ignoring input and appending output to `nohup.out'
alieblice@~$
نکته :
پروسس هایی که با nohup اجرا میشن در لیست کار هایه دستور jobs نمیاد
منابع :
LPIC-1_In_Nutshell_Oreilly_Edition3
http://ubuntuone.com/p/15HZ/
Help -