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
- Zagon procesa z uporabo Nohup
- Zagon procesa v ozadju z uporabo Nohup
- Za izvajanje več ukazov v ozadju
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 imenomnohup.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 uporabinohup>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 jeps>oztop>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.