Kā palaist Linux komandu fonā un atvienot procesu terminālī

Ka Palaist Linux Komandu Fona Un Atvienot Procesu Terminali



Šajā rokasgrāmatā mēs uzzināsim, kā izpildīt komandu fonā un kā atdalīt procesus no termināļa.

Priekšnosacījumi:

Lai veiktu šajā rokasgrāmatā norādītās darbības, jums ir nepieciešami šādi komponenti:

  • Funkcionāla Linux sistēma. Uzziniet vairāk par Ubuntu VM iestatīšana vietnē VirtualBox .
  • Piekļuve a lietotājs, kas nav root lietotājs ar sudo atļauju .

Procesu palaišana no termināļa

Ikreiz, kad tiek palaista komanda, procesi tiek radīti zem termināļa. Ja terminālis ir aizvērts, visi saistītie procesi tiek automātiski pārtraukti. Noteiktās situācijās tas var būt neērti. Piemēram:







  • Milzīgs izvaddatu un kļūdu/diagnostikas ziņojumu daudzums
  • Nejauša termināļa slēgšana, kuras rezultātā tiek pārtraukti potenciāli kritiskie procesi utt.

Lai risinātu šīs problēmas, ir vairākas iespējas:



  • Procesu palaišana fonā
  • Procesu atdalīšana no termināļa

Procesi, kas darbojas fonā, nepārslogos termināļa izvadi. Turklāt terminālis var brīvi palaist papildu komandas. Atdalītajiem procesiem tie netiks pārtraukti pat tad, ja terminālis ir aizvērts.



Procesu sākšana fonā

Daudzos gadījumos komandas izpilde var aizņemt diezgan ilgu laiku. Parasti lietotājs ir spiests gaidīt, līdz komanda tiks pabeigta. Piemēram, ja izmantojat teksta redaktoru, apvalks nav pieejams, līdz redaktors nav aizvērts.





Lai parādītu, mēs izmantojam komandu “jā”:

$ vīrietis



1. metode:

Ir vairāki veidi, kā mēs varam nosūtīt darbības procesu fonā.

Pirmkārt, mēs pārtraucam procesu, to nepārtraucot. Lai to izdarītu, palaidiet šo komandu un nospiediet 'Ctrl + Z':

$ 'Sveika pasaule' > / izstrādātājs / null

Tagad palaidiet komandu “bg”, lai nosūtītu procesu fonā:

$ bg

Kad process tiek novirzīts fonā, process tiek atsākts. Šajā komandā ir uzskaitīti visi fonā esošie darbi:

$ darba vietas

2. metode:

Iepriekšējā metodē process vispirms sāka darboties priekšplānā. Mēs apturējām procesu, nosūtījām to fonā un pēc tam atsākām. Tā vietā mēs varam palaist procesu tieši fonā.

Lai to izdarītu, komandas beigās pievienojiet zīmi “&”:

$ 'Ak, ilgi Džonsons' > / izstrādātājs / null &

Šeit radītie procesi automātiski darbojas fonā. Lai pārbaudītu, pārbaudiet fona darbu sarakstu:

$ darba vietas

3. metode:

Mēs varam arī palaist procesus fonā ar palīdzību tmux , jaudīgs multiplekseris, kas var pārvaldīt vairākas termināļa sesijas vienā logā. Tas nav iepriekš instalēts operētājsistēmā Linux. Tomēr tas ir pieejams visiem lielākajiem Linux izplatījumiem. Uzziniet vairāk par tmux instalēšana operētājsistēmā Linux .

Nākamajā piemērā mēs izmantojam tmux, lai pārbaudītu mērķi un reģistrētu izvadi:

$ tmux jauns -d 'ping -c 9 127.0.0.1 > ping.log'

Žurnāla fails pārbauda, ​​vai komanda darbojas veiksmīgi vai nē:

$ kaķis ping.log

Tas ir tikai viens piemērs tam, ko tmux var darīt. Uzziniet vairāk par tmux ar piemēriem .

Darba vietu atgriešana priekšplānā

Ja vēlaties atgriezt darbu priekšplānā, mēs izmantojam komandu “fg”. Mums ir nepieciešams arī darba numurs no darba komandas.

Vispirms nosakiet darbu, kuru vēlaties izvirzīt priekšplānā:

$ darba vietas

Tagad izmantojiet komandu “fg”:

$ fg %< darba_numurs >

Procesu atdalīšana no termināļa

Jebkurš process, kas saistīts ar termināli, tiek pārtraukts, tiklīdz terminālis tiek aizvērts neatkarīgi no tā, vai tas darbojas priekšplānā vai fonā. Lai izvairītos no procesa pārtraukšanas, mēs nošķiram mērķa procesu no termināļa/čaulas.

1. metode:

Lai atteiktu procesu, mums vispirms ir nepieciešams fona process:

$ 'qwerty' > / izstrādātājs / null &

Pārbaudiet fona darbu sarakstu:

$ darba vietas

Ņemiet vērā mērķa fona darba sērijas numuru. Tagad izmantojiet komandu “disown”, lai to atvienotu no termināļa:

$ atteikties %< darba_numurs >

Mērķa darbam tagad vajadzētu pazust no darbu saraksta:

$ darba vietas

Tomēr jūs joprojām varat redzēt procesu, kas darbojas fonā:

$ ps uz

2. metode:

Vēl viens veids, kā atdalīt procesu no vecāktermināļa, ir komandas “nohup” izmantošana. Tas saglabā procesu fonā pat pēc termināļa aizvēršanas.

Vārda “nohup” lietojums ir šāds:

$ nohup < komandu > &

Pārbaudiet, vai darbs ir veiksmīgi izveidots:

$ darba vietas

3. metode:

Šī metode pilnībā atdala mērķa procesu. Tas ir efektīvāks veids, kā atvienot GUI lietotnes.

Piemēram, lai palaistu Firefox un pilnībā atvienotu to no termināļa, izmantojiet šo komandu:

$ firefox izstrādātājs / null &>/ izstrādātājs / null &

Šeit:

  • The /dev/null ir īpaša ierīce operētājsistēmā Linux, kas atbrīvojas no visiem tajā ierakstītajiem datiem.
  • Iepriekšējā komandā ievade tiek nolasīta no un izvade tiek nosūtīta uz /dev/null . Uzziniet vairāk par citi veidi, kā izmantot /dev/null .

Secinājums

Mēs demonstrējām dažādus procesu vadīšanas veidus fonā. Mēs arī parādījām veidus, kā atdalīt procesu no vecāku termināļa. Šīs metodes var būt noderīgas, strādājot ar termināli vai palaist skriptu .

Ja jums ir jāpalaiž noteiktas komandas noteiktā shēmā, mēs varam to izlādēt kā a sistēmiskais pakalpojums . Attālinātām mašīnām mēs varam izmantot arī tādus trešo pušu rīkus kā Iespēja automatizēt gandrīz visu .

Laimīgu skaitļošanu!