Kuidas käivitada Linuxi käsk taustal ja eraldada protsess terminalis


Selles juhendis toome päevavalgele lihtsa, kuid olulise kontseptsiooni protsesside käitlemisel Linuxi süsteemis, see tähendab, kuidas protsess protsessist täielikult lahti ühendada.

Kui protsess on seotud terminaliga, võib ilmneda kaks probleemi:

  1. teie juhtterminal on täis nii palju väljundandmeid ja viga/diagnostilisi teateid.
  2. terminali sulgemise korral lõpetatakse protsess koos alamprotsessidega.

Nende kahe probleemiga tegelemiseks peate protsessi täielikult kontrollivast terminalist eraldama. Enne kui me probleemi lahendamiseks tegelikult edasi liikume, käsitleme lühidalt, kuidas protsesse taustal käivitada.

Kuidas käivitada taustal Linuxi protsess või käsk

Kui protsess on juba käivitamisel, nagu näiteks allpool toodud käsk tar, vajutage selle peatamiseks lihtsalt Ctrl + Z ja sisestage käsk bg , et jätkata selle käivitamist taust kui töö.

Kõiki oma tausttöid saate vaadata, tippides job . Kuid selle stdin, stdout, stderr on endiselt terminaliga ühendatud.

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

Samuti saate protsessi käivitada otse taustalt, kasutades märki ampersand, & .

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

Vaadake allpool toodud näidet, kuigi käsk tar oli käivitatud tausttööna, saadeti terminalile ikkagi tõrketeade, mis tähendab, et protsess on endiselt ühendatud kontrolliva terminaliga.

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

Hoidke Linuxi protsessid töötavad pärast terminalist väljumist

Kasutame käsku lahti, seda kasutatakse pärast protsessi käivitamist ja tagaplaanile seadmist. Selle ülesandeks on shellitöö eemaldamine shelli aktiivsetest loenditöödest, mistõttu te ei kasuta fg , bg käsud enam sellel konkreetsel tööl.

Lisaks, kui sulgete juhtterminali, ei riputa see töö ega saadeta SIGHUP-i ühelegi lapse töökohale.

Vaatame allolevat näidet diswon bashi sisseehitatud funktsiooni kasutamiseks.

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

Võite kasutada ka käsku nohup , mis võimaldab protsessil ka taustal jätkata, kui kasutaja kestast väljub.

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

Ühendage Linuxi protsessid terminali juhtimisega

Seetõttu on protsessi täielikuks lahtiühendamiseks kontrollivast terminalist alloleva käsuvormingu kasutamine tõhusam graafiliste kasutajaliideste (GUI) rakenduste puhul, näiteks Firefox:

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

Linuxis on/dev/null spetsiaalne seadmefail, mis kustutab (vabaneb) kõik sinna kirjutatud andmed, ülaltoodud käsus loetakse sisendit ja väljund saadetakse aadressile/dev/null.

Kokkuvõtva märkusena, tingimusel, et protsess on ühendatud kontrolliva terminaliga, näete kasutajana oma terminalis nii protsessiandmete mitu väljundirida kui ka veateateid. Jällegi, kui kontrollterminali sulgete, lõpetatakse teie protsess ja alamprotsessid.

Oluline on, et kui teil on küsimusi või märkusi selle teema kohta, võtke meiega ühendust, kasutades allolevat kommentaarivormi.