nohup - Run Commands in the Background - Linux CLI
Talaan ng mga Nilalaman:
- Patakbuhin ang isang Linux Command sa Background
- Ilipat ang Proseso ng Paunang Balita sa Background
- Panatilihin ang Mga Proseso sa background na Tumatakbo Pagkatapos ng isang Paglabas ng Shell
- Mga alternatibo
- Screen
- Tmux
- Konklusyon
Karaniwan kapag nagpatakbo ka ng isang utos sa terminal, kailangan mong maghintay hanggang matapos ang utos bago ka makapasok sa isa pa. Ito ay tinatawag na pagpapatakbo ng utos sa proseso ng foreground o foreground. Kapag ang isang proseso ay tumatakbo sa harapan, sinasakop nito ang iyong shell, at maaari kang makipag-ugnay sa ito gamit ang mga aparato ng input.
Paano kung ang utos ay tumatagal ng mahabang oras upang matapos, at nais mong magpatakbo ng iba pang mga utos? Mayroon kang maraming mga pagpipilian sa iyong pagtatapon. Ang pinaka-halata at prangka na pagpipilian ay upang magsimula ng isang bagong session ng shell at patakbuhin ang utos sa loob nito. Ang isa pang pagpipilian ay upang patakbuhin ang utos sa background.
Ang isang proseso ng background ay isang proseso / utos na nagsimula mula sa isang terminal at tumatakbo sa background, nang walang pakikipag-ugnay mula sa gumagamit., pag-uusapan natin ang tungkol sa mga proseso ng background ay Linux. Ipapakita namin sa iyo kung paano simulan ang isang utos sa background at kung paano mapanatili ang proseso na tumatakbo pagkatapos na sarado ang session ng shell.
Patakbuhin ang isang Linux Command sa Background
Upang magpatakbo ng isang utos sa background, idagdag ang simbolo ng ampersand (
&
) sa dulo ng utos:
command &
Ang ID ng job job (napapaligiran ng mga bracket) at proseso ng ID ay mai-print sa terminal:
25177
Maaari kang magkaroon ng maraming mga proseso na tumatakbo sa background nang sabay.
Ang proseso ng background ay magpapatuloy na magsulat ng mga mensahe sa terminal kung saan mo hinango ang utos. Upang sugpuin ang mga mensahe ng
stdout
at
stderr
gamitin ang sumusunod na syntax:
command > /dev/null 2>&1 &
>/dev/null 2>&1
nangangahulugang pag-redirect ng
stdout
sa
/dev/null
at
stderr
sa
stdout
.
Gamitin ang utility ng
jobs
upang maipakita ang katayuan ng lahat ng tumigil at mga trabaho sa background sa kasalukuyang session ng shell:
jobs -l
Kasama sa output ang bilang ng trabaho, proseso ng ID, estado ng trabaho, at utos na nagsimula ng trabaho:
+ 25177 Running ping google.com &
Upang magdala ng isang background na proseso sa harapan, gamitin ang
fg
utos:
fg
fg %1
Upang wakasan ang proseso ng background, gamitin ang utos ng
kill
sinusundan ng proseso ng ID:
Ilipat ang Proseso ng Paunang Balita sa Background
Upang ilipat ang isang proseso ng pagtatakbo sa background:
- Patigilin ang proseso sa pamamagitan ng pag-type ng
Ctrl+Z.Paghihinto ang hinto na proseso sa background sa pamamagitan ng pag-type ngbg.
Panatilihin ang Mga Proseso sa background na Tumatakbo Pagkatapos ng isang Paglabas ng Shell
Kung bumaba ang iyong koneksyon o nag-log out sa session ng shell, natapos ang mga proseso ng background. Mayroong maraming mga paraan upang mapanatili ang proseso na tumatakbo matapos ang interactive na session ng shell.
Ang isang paraan ay ang pagtanggal ng trabaho mula sa control ng trabaho ng shell gamit ang
disown
shell builtin:
disown
disown %1
Kinumpirma na ang trabaho ay tinanggal mula sa talahanayan ng mga aktibong trabaho gamit ang utos ng
jobs -l
. Upang ilista ang lahat ng mga proseso ng pagpapatakbo, kabilang ang hindi tinanggihan gumamit ng utos ng
ps aux
.
Ang isa pang paraan upang mapanatili ang isang proseso na tumatakbo pagkatapos ng exit ng shell ay ang paggamit ng
nohup
.
Ang utos ng
nohup
nagsasagawa ng isa pang programa na tinukoy bilang argumento at hindi pinapansin ang lahat ng
SIGHUP
(hangup) signal.
SIGHUP
ay isang senyas na ipinapadala sa isang proseso kapag ang control ng terminal ay sarado.
Upang magpatakbo ng isang utos sa background gamit ang command na
nohup
, i-type ang:
nohup command &
Ang command output ay nai-redirect sa
nohup.out
file.
nohup: ignoring input and appending output to 'nohup.out'
Mga alternatibo
Mayroong isang bilang ng mga programa na nagbibigay-daan sa iyo upang magkaroon ng maraming mga interactive na sesyon nang sabay-sabay.
Screen
Ang Screen o GNU Screen ay isang terminal na multiplexer program na nagbibigay-daan sa iyo upang magsimula ng session ng screen at buksan ang anumang bilang ng mga windows (virtual na mga terminal) sa session na iyon. Ang mga proseso na tumatakbo sa Screen ay patuloy na tatakbo kapag ang kanilang window ay hindi nakikita kahit na naka-disconnect ka.
Tmux
Ang Tmux ay isang modernong alternatibo sa screen ng GNU. Sa Tmux, maaari ka ring lumikha ng isang session at buksan ang maraming mga bintana sa loob ng session na iyon. Ang mga sesyon ng Tmux ay patuloy, na nangangahulugang ang mga programa na tumatakbo sa Tmux ay patuloy na tumatakbo kahit na isara mo ang terminal.
Konklusyon
Upang magpatakbo ng isang utos sa background, isama
&
sa dulo ng utos.
Kapag nagpatakbo ka ng isang utos sa background, hindi mo na kailangang maghintay hanggang matapos ito bago ka makapagpatupad ng isa pa.
nohup fg bg trabaho disown terminalPaano baguhin ang tema ng background background ng vector 2013
Narito ang isang Mabilis na Tip upang Ipakita sa iyo Paano Magbabago ang Opisina ng Tema ng Background Vector.
Paano magpatakbo ng mga programang nakabatay sa linux sa mga chromebook
Gustung-gusto ang lumang programa na nakabase sa Linux kahit na pagkatapos lumipat sa isang Chromebook? Walang pawis, sa paggamit ng rollApp maaari mong makuha ang pinakamahusay sa parehong mga mundo. Basahin mo.
Paano magpatakbo ng utos ng sudo nang walang password
Pinapayagan ng utos ng sudo ang mga mapagkakatiwalaang gumagamit na magpatakbo ng mga programa bilang isa pang gumagamit, sa pamamagitan ng default ang root user. Ipinapaliwanag ng tutorial na ito kung paano i-configure ang file ng sudoers at payagan ang ilang mga gumagamit na magpatakbo ng mga mando ng sudo nang hindi hinilingin ang password.







