Katra Linux komanda tās izpildes laikā sāk procesu, kas automātiski tiek pārtraukts, izejot no termināļa. Pieņemsim, ka jūs izpildāt programmas, izmantojot SSH, un, ja savienojums pārtrūks, sesija tiks pārtraukta, visi izpildītie procesi tiks apturēti, un jūs varat saskarties ar milzīgu nejaušu krīzi. Šādos gadījumos komandu izpildīšana fonā var būt ļoti noderīga lietotājam, un tieši šeit nohup komanda nonāk attēlā. nohup (bez klausīšanās) ir komanda Linux sistēmās, kas palaiž procesu pat pēc atteikšanās no čaulas/termināļa.
Nohupa komanda
Parasti katrs process Linux sistēmās tiek nosūtīts a SIGHUP (signāla pārtraukšana) kura ir atbildīga par procesa pārtraukšanu pēc termināļa slēgšanas/izejas. Nohup komanda neļauj procesam saņemt šo signālu, aizverot vai izejot no termināļa/čaulas. Kad darbs ir sākts vai izpildīts, izmantojot komandu nohup, stdin lietotājam nebūs pieejams un nohup.out fails tiek izmantots kā noklusējuma fails stdout un stderr . Ja komandas nohup izvade tiek novirzīta uz kādu citu failu, nohup.out fails nav ģenerēts.
Nohup komandas sintakse
Komandas Nohup izmantošanas sintakse ir vienkārša:
cilpai bash
nohup command [options] &>
-
`command`>: norāda komandu vai skriptu, kuru vēlaties izpildīt. -
`[options]`>: izvēles argumenti vai karodziņi, kas maina komandas darbību. -
`&`>: Ievietojot & (&) komandas beigās, čaula uzdod komandu palaist fonā.
Darbs ar nohup komandu
- Nohup versijas pārbaude
- Procesa sākšana, izmantojot Nohup
- Procesa sākšana fonā, izmantojot Nohup
- Lai fonā palaistu vairākas komandas
Nohup versijas pārbaude
Nohup versijas pārbaude ir vienkāršs process. Parasti sistēmā instalēto Nohup versiju var pārbaudīt, izmantojot ` --version`> karogs. Vienkārši izpildiet šādu komandu:
nohup --version>
Izvade:
Procesa sākšana, izmantojot Nohup
Lai sāktu procesu, izmantojot Nohup, vienkārši pievienojiet vajadzīgo komandu arnohup>. Piemēram, ja vēlaties izpildīt bash skriptu ar nosaukumugeekfile.py>izmantojot Nohup, jūs izmantotu šādu komandu:
nohup bash geekfile.sh>
Izvade:
Lai novirzītu izvadi uz output.txt fails:
nohup bash geekfile.sh>output.txt>
Izvade:
npm tīrīšanas kešatmiņas spēks
Procesa sākšana fonā, izmantojot Nohup
Lai izpildītu komandu fonā, &' komandas beigās ir pievienots simbols. Pēc izpildes tā neatgriežas čaulas komandu uzvednē pēc komandas palaišanas fonā. To var atgriezt priekšplānā, izmantojot fg komandu.
nohup bash geekfile.sh & fg>
Izvade:
iteratora java karte
Piezīme: Skaitlis kvadrātiekavās apzīmē darba id un blakus esošais numurs ir procesa id .
Lai fonā palaistu vairākas komandas
komandu nohup var izmantot, lai fonā palaistu vairākas komandas.
nohup bash -c 'commands'>
Piemērs:
nohup bash -c 'cal && ls'>
Izvade:
Šeit izvade pēc noklusējuma tiks saglabāta nohup.out . Lai to novirzītu, ierakstiet:
nohup bash -c 'commands'>faila nosaukums.txt>
Piemērs:
nohup bash -c 'cal && ls'>output.txt>
Izvade:
stīgu savienošana
nohup komanda operētājsistēmā Linux — FAQ
Kas ir nohup> komanda Linux, un ko tā dara?
The
nohup>komanda nozīmē nolikt klausuli. Tas ļauj palaist komandu vai čaulas skriptu tā, lai tas turpinātu darboties pat pēc atteikšanās vai termināļa aizvēršanas. Tas novērš komandas pārtraukšanu, kad termināļa sesija beidzas.grima produktu nosaukums
Kā es varu izmantot nohup> komanda?
Izmantot
nohup>, vienkārši pievienojiet to komandai, kuru vēlaties palaist. Piemēram:nohup command_to_run &>The
&>simbols beigās ievieto komandu fonā, ļaujot turpināt lietot termināli, kamēr komanda darbojas.
Kur nohup> nosūtīt komandas izvadi?
Pēc noklusējuma,
nohup>novirza gan standarta izvadi (stdout), gan standarta kļūdu (stderr) uz failu ar nosaukumunohup.out>pašreizējā direktorijā. Ja vēlaties, varat norādīt citu izvades failu.
Vai es varu izmantot nohup> ar interaktīvām komandām vai programmām?
Kamēr
nohup>parasti tiek izmantots ar neinteraktīvām komandām vai skriptiem, varat to izmantot ar interaktīvām komandām. Tomēr darbība var būt neparedzama, it īpaši, ja komanda sagaida lietotāja ievadi. Parasti ieteicams izvairīties no lietošanasnohup>ar interaktīvām programmām.
Kā es varu pārbaudīt komandas statusu, kas darbojas ar nohup> ?
Kopš
nohup>palaiž komandu fonā, varat izmantot standarta Linux rīkus, piemēramps>vaitop>lai pārbaudītu procesa statusu. Piemēram:ps aux | grep>Tas parādīs informāciju par procesu, tostarp tā PID (procesa ID), ko pēc tam varat izmantot, lai pārvaldītu vai pārraudzītu komandu.
Secinājums
Operētājsistēmā Linux, kad palaižat komandu, tā parasti apstājas, aizverot termināli. Bet ar nohup> , varat to turpināt darboties pat pēc termināļa aizvēršanas. Tas ir ļoti ērti, it īpaši, ja palaižat komandas attālināti un nevēlaties, lai tās apstātos, ja savienojums pazūd.nohup>darbojas, pasargājot jūsu komandu no signāliem, kas parasti to apturētu. Jūs vienkārši pievienojatnohup>pirms jūsu pavēles, un tas turpinās. Varat arī nosūtīt komandas izvadi uz failu. Vienkārši atcerieties, ka tas ir vislabāk piemērots neinteraktīviem uzdevumiem, un jūs varat pārbaudīt komandas statusu, izmantojot tādus rīkus kāps>. Tātad,nohup>ir kā drošības tīkls jūsu komandām, kas nodrošina, ka tās turpina darboties pat tad, kad jūs neskatāties.