Android

Utos ng Linux nohup

Using nohup to allows jobs to continue on logout

Using nohup to allows jobs to continue on logout

Talaan ng mga Nilalaman:

Anonim

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.

Karaniwan, kapag nagpapatakbo ka ng isang programa sa SSH, kung ang iyong koneksyon ay bumaba o nag-log out, natapos ang session, at ang lahat ng mga proseso na isinagawa mula sa terminal ay titigil. Ito ay kung saan ang utos ng nohup madaling gamitin. Hindi papansin ang lahat ng mga signal ng hangup, at ang proseso ay magpapatakbo.

Paano Gamitin ang nohup Command

Ang syntax para sa utos ng nohup ay ang mga sumusunod:

nohup COMMAND

Ang utos ay hindi tumatanggap ng anumang iba pang mga pagpipilian maliban sa karaniwang --help at --version - --version .

Tingnan natin ang sumusunod na halimbawa:

nohup mycommand

nohup: ignoring input and appending output to 'nohup.out'

Nagpapatakbo ang nohup ng utos ng mycommand sa harapan at nagre-redirect ng command output sa nohup.out file. Ang file na ito ay nilikha sa kasalukuyang direktoryo ng pagtatrabaho. Kung ang gumagamit na nagpapatakbo ng utos ay walang pagsusulat ng mga pahintulot sa gumaganang direktoryo, ang file ay nilikha sa direktoryo ng bahay ng gumagamit.

Kung nag-log out o isara ang terminal, ang proseso ay hindi natatapos.

Tumatakbo ang Utos sa background

Ang paggamit ng nohup sa foreground ay hindi masyadong kapaki-pakinabang dahil hindi ka makaka-ugnay sa shell hanggang sa makumpleto ang utos.

Upang patakbuhin ang utos sa background idagdag ang & simbolo sa dulo ng utos:

nohup mycommand &

Kasama sa output ang ID ng job job (napapaligiran ng mga bracket) at process ID:

25177

Maaari mong gamitin ang job ID upang maihatid ang utos sa foreground gamit ang fg command.

Kung sa ilang kadahilanan na nais mong wakasan ang proseso, gamitin ang utos ng kill sinusundan ng proseso ng ID:

kill -9 25132

Pag-redirect ng Output sa isang File

Bilang default, nagre-redirect ang nohup sa command output sa nohup.out file. Kung nais mong mai-redirect ang output sa ibang file, gamitin ang karaniwang pag-redirect ng shell.

Halimbawa, upang mai-redirect ang karaniwang output at karaniwang error sa mycommand.out gagamitin mo:

nohup mycommand > mycommand.out 2>&1 &

Upang mai-redirect ang karaniwang output at karaniwang error sa iba't ibang mga file:

nohup mycommand > mycommand.out 2> mycommand.err &

Mga alternatibo

Mayroong maraming mga alternatibong programa na maaari mong gamitin upang maiwasan ang isang utos na wakasan kapag isinara mo ang terminal o makakonekta.

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 nagpapatuloy, na nangangahulugang ang mga programa na tumatakbo sa Tmux ay patuloy na tatakbo kahit na isara mo ang terminal.

Tinanggihan

disown ay isang shell builtin na nag-aalis ng isang job shell mula sa control ng trabaho ng shell. Hindi tulad ng nohup , maaari mong gamitin ang disown sa pagpapatakbo ng mga proseso din.

Konklusyon

Pinapayagan ka ng nohup na pigilan ang mga utos na mai-wakas kapag nag-log out o lumabas sa terminal.

terminal ng nohup