Jinsi ya Kuanza Amri ya Linux kwa Asili na Mchakato wa Kuondoa kwenye terminal


Katika mwongozo huu, tutaangazia dhana rahisi lakini muhimu katika kushughulikia mchakato katika mfumo wa Linux, ambayo ni jinsi ya kuondoa kabisa mchakato kutoka kwa terminal yake ya kudhibiti.

Wakati mchakato unahusishwa na terminal, shida mbili zinaweza kutokea:

  1. kituo chako cha kudhibiti kimejaa data nyingi za matokeo na ujumbe wa hitilafu/uchunguzi.
  2. ikitokea kwamba terminal itafungwa, mchakato pamoja na mchakato wa mtoto utakatizwa.

Ili kushughulikia maswala haya mawili, unahitaji kuondoa kabisa mchakato kutoka kwa terminal inayodhibiti. Kabla hatujasonga kusuluhisha tatizo, hebu tuangazie kwa ufupi jinsi ya kuendesha michakato chinichini.

Jinsi ya Kuanzisha Mchakato wa Linux au Amri kwa Usuli

Ikiwa mchakato tayari unatekelezwa, kama vile mfano wa amri ya tar hapa chini, bonyeza tu Ctrl+Z ili kuusimamisha kisha uweke amri bg ili kuendelea na utekelezaji wake kwenye background kama kazi.

Unaweza kutazama kazi zako zote za usuli kwa kuandika kazi. Walakini, stdin, stdout, stderr bado zimeunganishwa kwenye terminal.

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

Unaweza vilevile kuendesha mchakato moja kwa moja kutoka chinichini kwa kutumia ishara ya ampersand, &.

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

Angalia mfano hapa chini, ingawa amri ya tar ilianzishwa kama kazi ya chinichini, ujumbe wa makosa bado ulitumwa kwa terminal ikimaanisha kuwa mchakato bado umeunganishwa kwenye terminal inayodhibiti.

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

Weka Michakato ya Linux Ikiendelea Baada ya Kuondoka kwenye Kituo

Tutatumia disown command, inatumika baada ya mchakato kuzinduliwa na kuwekwa nyuma, kazi yake ni kuondoa kazi ya ganda kutoka kwa kazi za orodha ya ganda, kwa hivyo hutatumia fg , bg amri juu ya kazi hiyo tena.

Kwa kuongeza, unapofunga terminal ya kudhibiti, kazi haitatundika au kutuma SIGHUP kwa kazi yoyote ya mtoto.

Wacha tuangalie mfano hapa chini wa kutumia kazi iliyojengwa ndani ya diswon bash.

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

Unaweza pia kutumia nohup amri, ambayo pia huwezesha mchakato kuendelea kufanya kazi chinichini mtumiaji anapotoka kwenye ganda.

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

Ondoa Taratibu za Linux kutoka kwa Kituo cha Kudhibiti

Kwa hivyo, ili kuondoa kabisa mchakato kutoka kwa terminal inayodhibiti, tumia umbizo la amri hapa chini, hii ni bora zaidi kwa programu za kiolesura cha picha (GUI) kama vile firefox:

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

Katika Linux, /dev/null ni faili maalum ya kifaa ambayo huandika (kuondoa) data yote iliyoandikwa kwake, kwa amri iliyo hapo juu, pembejeo inasomwa kutoka, na matokeo hutumwa kwa /dev/null.

Kama maoni ya kuhitimisha, mradi mchakato umeunganishwa kwenye terminal inayodhibiti, kama mtumiaji, utaona mistari kadhaa ya matokeo ya data ya mchakato na ujumbe wa makosa kwenye terminal yako. Tena, unapofunga terminal ya kudhibiti, mchakato wako na michakato ya mtoto itakatizwa.

Muhimu, kwa maswali au maoni yoyote juu ya mada hiyo, tufikie kwa kutumia fomu ya maoni hapa chini.