logo

Ukaz nohup v Linuxu s primeri

Vsak ukaz v Linuxu sproži proces ob njegovem izvajanju, ki se samodejno prekine ob izhodu iz terminala. Recimo, da izvajate programe prek SSH in če povezava prekine, bo seja prekinjena, vsi izvedeni procesi se bodo ustavili in lahko se soočite z veliko nenamerno krizo. V takih primerih je izvajanje ukazov v ozadju lahko zelo koristno za uporabnika in tukaj je ukaz nohup pride na sliko. nohup (brez prekinitve) je ukaz v sistemih Linux, ki zažene proces tudi po odjavi iz lupine/terminala.

Ukaz Nohup

Običajno se vsak proces v sistemih Linux pošlje a SIGHUP (prekinitev signala) ki je odgovoren za zaključek procesa po zaprtju/izhodu iz terminala. Ukaz Nohup prepreči, da bi proces prejel ta signal ob zapiranju ali izhodu iz terminala/lupine. Ko se opravilo zažene ali izvede z ukazom nohup, stdin ne bo na voljo uporabniku in nohup.out se uporablja kot privzeta datoteka za stdout in stderr . Če je izhod ukaza nohup preusmerjen v drugo datoteko, nohup.out datoteka ni ustvarjena.



Sintaksa ukaza Nohup

Sintaksa za uporabo ukaza Nohup je preprosta:

značilnosti java
nohup command [options] &>
  • `command`> : Določa ukaz ali skript, ki ga želite izvesti.
  • `[options]`> : neobvezni argumenti ali zastavice, ki spremenijo vedenje ukaza.
  • `&`> : Postavitev znaka & (&) na koncu ukaza lupini naroči, naj zažene ukaz v ozadju.

Delo z ukazom nohup

Preverjanje različice Nohup

Preverjanje različice Nohup je preprost postopek. Običajno lahko preverite različico programa Nohup, ki je nameščena v vašem sistemu, z uporabo ` --version`> zastava. Preprosto izvedite naslednji ukaz:



nohup --version>

Izhod:

Zagon procesa z uporabo Nohup

Če želite zagnati postopek z uporabo Nohup, preprosto pred želeni ukaz dodajtenohup>. Na primer, če želite izvesti skript bash z imenomgeekfile.py>če uporabljate Nohup, bi uporabili naslednji ukaz:



nohup bash geekfile.sh>

Izhod:

java concat nizi

Za preusmeritev izhoda v izhod.txt mapa:

nohup bash geekfile.sh>output.txt>>

Izhod:

podatkovne vrste v Javi

Zagon procesa v ozadju z uporabo Nohup

Če želite zagnati ukaz v ozadju, pritisnite &’ simbol je dodan na koncu ukaza. Po izvedbi se po zagonu ukaza v ozadju ne vrne v ukazni poziv lupine. V ospredje ga je mogoče vrniti z fg ukaz.

nohup bash geekfile.sh & fg>

Izhod:

Opomba: Številka v oglatih oklepajih predstavlja ID službe in številka zraven je ID procesa .

Za izvajanje več ukazov v ozadju

ukaz nohup lahko uporabite za zagon več ukazov v ozadju.

nohup bash -c 'commands'>

primer:

nohup bash -c 'cal && ls'>

Izhod:

Tukaj bo izhod privzeto shranjen v nohup.out . Če ga želite preusmeriti, vnesite:

nohup bash -c 'commands'>ime datoteke.txt>

primer:

nohup bash -c 'cal && ls'>output.txt>>

Izhod:

bash dolžina niza

Ukaz nohup v Linuxu – pogosta vprašanja

Kaj je nohup> ukaz v Linuxu in kaj počne?

The nohup> ukaz pomeni brez prekinitve. Omogoča vam zagon ukaza ali skripta lupine na tak način, da se nadaljuje tudi po tem, ko se odjavite ali zaprete terminal. To preprečuje, da bi bil ukaz prekinjen, ko se terminalska seja konča.

java niz v json

Kako naj uporabim nohup> ukaz?

Uporabiti nohup> , preprosto dodajte pred ukaz, ki ga želite zagnati. Na primer:

nohup command_to_run &>

The &> simbol na koncu postavi ukaz v ozadje, kar vam omogoča, da nadaljujete z uporabo terminala, medtem ko se ukaz izvaja.

Kje pa nohup> poslati izhod ukaza?

Privzeto, nohup> preusmeri standardni izhod (stdout) in standardno napako (stderr) v datoteko z imenom nohup.out> v trenutnem imeniku. Če želite, lahko določite drugo izhodno datoteko.

Ali lahko uporabim nohup> z interaktivnimi ukazi ali programi?

Medtem nohup> se običajno uporablja z neinteraktivnimi ukazi ali skripti, lahko pa ga uporabite z interaktivnimi ukazi. Vendar pa je vedenje lahko nepredvidljivo, zlasti če ukaz pričakuje vnos od uporabnika. Na splošno je priporočljivo, da se izogibate uporabi nohup> z interaktivnimi programi.

Kako lahko preverim stanje ukaza, ki se izvaja z nohup> ?

Od nohup> zažene ukaz v ozadju, lahko uporabite standardna orodja Linuxa, kot je ps> oz top> da preverite stanje postopka. Na primer:

ps aux | grep>

To vam bo pokazalo informacije o procesu, vključno z njegovim PID (ID procesa), ki ga lahko nato uporabite za upravljanje ali spremljanje ukaza.

Zaključek

V Linuxu se ukaz, ko zaženete, običajno ustavi, ko zaprete terminal. Ampak z nohup> , ga lahko nadaljujete tudi po tem, ko zaprete terminal. To je zelo priročno, še posebej, če ukaze izvajate na daljavo in ne želite, da se ustavijo, če vaša povezava prekine.nohup>deluje tako, da vaš ukaz zaščiti pred signali, ki bi ga običajno zaustavili. Samo dodašnohup>pred vašim ukazom in gre naprej. Izhod ukaza lahko pošljete tudi v datoteko. Ne pozabite, da je najboljši za neinteraktivna opravila in lahko preverite stanje svojega ukaza z orodji, kot jeps>. Torej,nohup>je kot varnostna mreža za vaše ukaze, ki zagotavlja, da se nadaljujejo, tudi ko ne gledate.