Magpadala ng Proseso sa Background Linux

Send Process Background Linux



Kapag nagtatrabaho sa mga graphic na kapaligiran sa desktop, bihira kaming mag-alala tungkol sa mga proseso ng background. Kung mayroon kaming isang proseso na tumatakbo sa harapan, maaari naming mabilis na magbunga ng isa pang window ng terminal at magpatuloy sa aming trabaho.

Gayunpaman, kung ikaw ay nasa isang hilaw na shell ng terminal tulad ng SSH, madalas kang mag-aalala tungkol sa mga proseso na sumasakop at harangan ang shell hanggang sa makumpleto ang mga ito, lalo na sa mga matagal nang trabaho. Iyon ay kung saan ang konsepto ng background at foreground na proseso ay pinag-uusapan.







Tatalakayin ng tutorial na ito kung ano ang background at foreground na proseso, kabilang ang paglikha at pamamahala sa kanila sa Linux.



Ano ang isang Proseso?

Payagan akong magsimula sa pangunahing antas: ano ang isang proseso?



Sa Linux, ang isang proseso ay isang halimbawa ng isang programa. Karaniwan, nangangahulugan ito na ang anumang utos o maipapatupad sa isang shell ay isang proseso.





Pangunahin ang dalawang uri ng proseso:

  • Mga proseso sa walang hanggan
  • Mga proseso sa background

Ang mga proseso ng walang hanggan ay pangunahin na mga karaniwang application na inilulunsad at nakikipag-ugnay namin sa kanila. Ang isang halimbawa ay ang nautilus file manager sa Gnome. Sa karamihan ng mga kaso, maaari naming simulan ang mga proseso sa harapan mula sa shell o sa kapaligiran sa desktop.



Sa kabilang banda, ang mga proseso ng background ay tumatakbo sa background at hindi nangangailangan ng input o pakikipag-ugnay mula sa gumagamit. Ang isang halimbawa ay anumang tipikal na daemon ng Linux.

Paano Patakbuhin ang isang Proseso sa Background

Ipagpalagay na mayroon kaming isang proseso na, habang tumatakbo, sinasakop ang sesyon ng shell at humahadlang sa amin mula sa pagpapatupad ng mga utos hanggang sa ito ay lumabas.

Halimbawa, kung patakbuhin namin ang Firefox browser sa shell, sasakupin nito ang sesyon hanggang sa maproseso ang proseso.

$firefox


Tulad ng nakikita mo, hangga't tumatakbo ang Firefox, hindi magagamit ang shell prompt, at hindi na kami makakapagpatupad ng anumang mga utos.

Upang malutas ito, magagawa natin ito sa dalawang paraan:

1: Paggamit ng isang Ampersand (&)

Ang unang pamamaraan ay ang paggamit ng ampersand & sign. Sinasabi nito sa shell na patakbuhin ang anumang utos na mauuna sa ampersand sa likuran.

Isang halimbawa:

firefox&

Sa ganitong sitwasyon, ang proseso ay nagpapatupad sa background at nagsisimulang bilang isang bagong prompt ng shell na pinapayagan kaming magpatuloy sa pagpapatupad ng mga utos.

Nagbibigay din ito ng dalawang identifier na bilang. Ang una na nakapaloob sa mga square bracket ay ang Job ID, habang ang susunod ay ang ID ng proseso.

2: Paggamit ng CTRL + Z, bg utos.

Ang susunod na pamamaraan na maaari mong gamitin upang maglagay ng isang proseso sa background ay ang paggamit ng shortcut na CTRL + Z. Hihinto nito ang proseso mula sa pag-block ng shell. Maaari mo nang magamit ang utos ng bg upang itulak ito sa background.

Halimbawa, magsimula sa pamamagitan ng paglulunsad ng Firefox bilang:

$Firefox

Habang tumatakbo ang proseso, pindutin ang CTRL + Z. Ibinabalik nito ang iyong shell prompt. Panghuli, ipasok ang utos ng bg upang itulak ang proseso sa background.

Paano Maipakita ang Mga Proseso sa Background

Upang matingnan at pamahalaan ang mga proseso sa likuran, gamitin ang mga utos ng trabaho sa shell. Ipapakita nito ang mga trabaho sa background sa kasalukuyang session ng terminal.

Halimbawa:

$mga trabaho

Isang halimbawa ng output ng mga trabaho sa background:

Upang magdala ng isang proseso na tumatakbo sa background sa harapan, gamitin ang fg command na sinusundan ng job id.

Halimbawa, upang dalhin ang trabaho ng firefox sa harapan, ginagamit namin ang utos:

$fg %1

Upang ilagay muli sa background, pindutin ang CTRL + Z na sinusundan ng utos ng bg.

Paano Gumawa ng Patuloy na Proseso Pagkatapos ng Pagkamatay ng Shell

Kapag nagpapatakbo ka ng mga proseso sa likuran, at namatay ang iyong session ng shell, ang lahat ng mga proseso na nauugnay dito ay wakasan, na maaaring may problema, lalo na kung ito ay sesyon ng SSH.

Gayunpaman, ito ay hindi masyadong isang malaking isyu kung gumamit ka ng isang terminal multiplexer tulad ng tmux o screen dahil, sa kasong iyon, maaari mo lamang muling mai-install ang session.

Gayunpaman, kung nagpapatakbo ka ng isang sesyon ng shell na walang multiplexer, maaari mong gamitin ang nohup na utos.

Ang command na nohup ay immune sa mga hang-up at maaaring balewalain ang signal ng SIGHUP na ipinadala sa isang proseso.

Samakatuwid, kung nagpapatakbo ka ng isang utos na may nohup, patuloy itong tumatakbo kahit na ang session ng shell ay hindi sinasadyang namatay.

Halimbawa, upang patakbuhin ang Firefox na may nohup, gamitin ang utos:

nohupFirefox&

Patakbuhin nito ang proseso sa likuran habang nagpapatuloy na isang natapos na ng shell.

Maaari kang magpatakbo ng isang bagong sesyon ng terminal at tingnan ang mga trabaho sa background. Makikita mo ang proseso na tumatakbo pa rin sa background.

Konklusyon

Sa tutorial na ito, tinalakay namin ang iba't ibang mga paraan upang magpatakbo at magpadala ng mga proseso sa background sa Linux. Sinakop din namin kung paano magdala ng proseso ng background sa background at magpumilit na mag-hang up sa pagwawakas ng shell.