Giunsa Pagsugod ang Linux Command sa Background ug Detach Process sa Terminal


Niini nga giya, atong ipatin-aw ang usa ka yano apan importante nga konsepto sa pagdumala sa proseso sa usa ka sistema sa Linux, nga mao ang paagi sa hingpit nga pagtangtang sa usa ka proseso gikan sa nagkontrol nga terminal niini.

Kung ang usa ka proseso nalangkit sa usa ka terminal, duha ka problema ang mahimong mahitabo:

  1. ang imong controlling terminal napuno sa daghan kaayong output data ug error/diagnostic nga mga mensahe.
  2. sa panghitabo nga sirado ang terminal, ang proseso uban sa mga proseso sa bata niini mahunong.

Aron masulbad kining duha ka mga isyu, kinahanglan nimo nga hingpit nga ibulag ang usa ka proseso gikan sa usa ka nagkontrol nga terminal. Sa dili pa kita molihok aron masulbad ang problema, atong hisgotan sa makadiyot kung giunsa ang pagpadagan sa mga proseso sa background.

Giunsa Pagsugod ang usa ka Proseso o Command sa Linux sa Background

Kung ang usa ka proseso gipatuman na, sama sa pananglitan sa tar command sa ubos, pindota lang ang Ctrl+Z aron mahunong kini dayon isulod ang command bg aron magpadayon sa pagpatuman niini sa background isip trabaho.

Mahimo nimong tan-awon ang tanan nimong mga trabaho sa background pinaagi sa pag-type sa mga trabaho. Bisan pa, ang stdin, stdout, stderr niini giapil gihapon sa terminal.

$ tar -czf home.tar.gz .
$ bg
$ jobs

Mahimo ka usab nga magpadagan sa usa ka proseso direkta gikan sa background gamit ang ampersand, & nga timaan.

$ tar -czf home.tar.gz . &
$ jobs

Tan-awa ang panig-ingnan sa ubos, bisan kung ang tar command gisugdan ingon usa ka background nga trabaho, usa ka mensahe sa sayup ang gipadala gihapon sa terminal nga nagpasabut nga ang proseso konektado gihapon sa nagkontrol nga terminal.

$ tar -czf home.tar.gz . &
$ jobs

Padayon nga Nagdagan ang Mga Proseso sa Linux Pagkahuman sa Paggawas sa Terminal

Gamiton namo ang disown command, gigamit kini human malunsad ang usa ka proseso ug ibutang sa background, ang trabaho mao ang pagtangtang sa usa ka shell job gikan sa aktibong listahan sa mga trabaho sa shell, busa dili nimo gamiton ang fg , bg mga sugo sa maong partikular nga trabaho.

Dugang pa, kung imong isira ang nagkontrol nga terminal, ang trabaho dili magbitay o magpadala usa ka SIGHUP sa bisan unsang trabaho sa bata.

Atong tan-awon ang sa ubos nga pananglitan sa paggamit sa diswon bash built-in nga function.

$ sudo rsync Templates/* /var/www/html/files/ &
$ jobs
$ disown  -h  %1
$ jobs

Mahimo usab nimong gamiton ang nohup nga sugo, nga makapahimo usab sa usa ka proseso nga magpadayon sa pagdagan sa background kung ang usa ka user mogawas sa usa ka shell.

$ nohup tar -czf iso.tar.gz Templates/* &
$ jobs

Pagtangtang sa mga Proseso sa Linux Gikan sa Pagkontrol sa Terminal

Busa, aron hingpit nga matangtang ang usa ka proseso gikan sa controlling terminal, gamita ang command format sa ubos, mas epektibo kini para sa graphical user interface (GUI) nga mga aplikasyon sama sa firefox:

$ firefox </dev/null &>/dev/null &

Sa Linux, ang /dev/null usa ka espesyal nga file sa aparato nga nagwagtang (nagtangtang) sa tanan nga datos nga gisulat niini, sa mando sa taas, gibasa ang input, ug ang output gipadala sa/dev/null.

Ingon usa ka panapos nga komento, kung ang usa ka proseso konektado sa usa ka nagkontrol nga terminal, ingon usa ka tiggamit, makita nimo ang daghang mga linya sa output sa data sa proseso ingon man mga mensahe sa sayup sa imong terminal. Pag-usab, kung imong isira ang usa ka nagkontrol nga terminal, ang imong proseso ug mga proseso sa bata mahunong.

Importante, alang sa bisan unsang mga pangutana o komento sa hilisgutan, maabot kami pinaagi sa paggamit sa porma sa komento sa ubos.