Cada comanda a Linux inicia un procés en el moment de la seva execució, que s'acaba automàticament en sortir del terminal. Suposem que esteu executant programes a través de SSH i si la connexió cau, la sessió s'acabarà, tots els processos executats s'aturaran i us podeu enfrontar a una gran crisi accidental. En aquests casos, executar ordres en segon pla pot ser molt útil per a l'usuari i aquí és on comanda nohup entra a la imatge. nohup (No Hang Up) és una ordre en sistemes Linux que executa el procés fins i tot després de tancar la sessió des del shell/terminal.
Comandament Nohup
Normalment, tots els processos dels sistemes Linux s'envien a SIGUP (senyal de penjar) que s'encarrega de finalitzar el procés després de tancar/sortir del terminal. L'ordre Nohup impedeix que el procés rebi aquest senyal en tancar o sortir del terminal/shell. Un cop s'inicia o s'executa un treball mitjançant l'ordre nohup, stdin no estarà disponible per a l'usuari i nohup.out s'utilitza com a fitxer per defecte stdout i stderr . Si la sortida de l'ordre nohup es redirigeix a un altre fitxer, nohup.out no es genera el fitxer.
Sintaxi de comandaments Nohup
La sintaxi per utilitzar l'ordre Nohup és senzilla:
eina de curació gimp
nohup command [options] &>
-
`command`>: Especifica l'ordre o l'script que voleu executar. -
`[options]`>: arguments o senyaladors opcionals que modifiquen el comportament de l'ordre. -
`&`>: col·locar un ampersand (&) al final de l'ordre indica a l'intèrpret d'ordres que executi l'ordre en segon pla.
Treballant amb nohup Command
- Comprovant la versió de Nohup
- Inici d'un procés amb Nohup
- Iniciar un procés en segon pla amb Nohup
- Per executar diverses ordres en segon pla
Comprovant la versió de Nohup
Comprovar la versió de Nohup és un procés senzill. Normalment podeu comprovar la versió de Nohup instal·lada al vostre sistema utilitzant el fitxer ` --version`> bandera. Simplement executeu l'ordre següent:
nohup --version>
Sortida:
Inici d'un procés amb Nohup
Per iniciar un procés amb Nohup, simplement afegiu l'ordre desitjadanohup>. Per exemple, si voleu executar un script bash anomenatgeekfile.py>utilitzant Nohup, utilitzaríeu l'ordre següent:
nohup bash geekfile.sh>
Sortida:
cadena de concatenació java
Per redirigir la sortida a sortida.txt dossier:
nohup bash geekfile.sh>output.txt>
Sortida:
tipus de dades primitius en java
Iniciar un procés en segon pla amb Nohup
Per executar l'ordre en segon pla, el &’ El símbol s'afegeix al final de l'ordre. Després d'executar-lo, no torna a l'indicador d'ordres de l'intèrpret d'ordres després d'executar l'ordre en segon pla. Es pot tornar a posar en primer pla amb el F g comandament.
nohup bash geekfile.sh & fg>
Sortida:
Nota: El nombre entre claudàtors representa el identificador de la feina i el número al costat és el identificador del procés .
Per executar diverses ordres en segon pla
L'ordre nohup es pot utilitzar per executar diverses ordres en segon pla.
nohup bash -c 'commands'>
Exemple:
nohup bash -c 'cal && ls'>
Sortida:
Aquí, la sortida s'emmagatzemarà per defecte a nohup.out . Per redirigir-lo, escriviu:
nohup bash -c 'commands'>nomfitxer.txt>
Exemple:
nohup bash -c 'cal && ls'>output.txt>
Sortida:
com llegir el fitxer csv en java
Comandament nohup a Linux - Preguntes freqüents
Que es el nohup> comanda a Linux, i què fa?
El
nohup>L'ordre significa no penjar. Us permet executar una comanda o un script d'intèrpret d'ordres de manera que es continuï executant fins i tot després de tancar la sessió o tancar el terminal. Això evita que l'ordre s'acabi quan finalitzi la sessió del terminal.càlcul de la tinença en excel
Com faig servir el nohup> comandament?
Usar
nohup>, simplement afegiu-lo a l'ordre que voleu executar. Per exemple:nohup command_to_run &>El
&>El símbol al final posa l'ordre en segon pla, la qual cosa us permet continuar utilitzant el terminal mentre s'executa l'ordre.
On ho fa nohup> enviar la sortida de l'ordre?
Per defecte,
nohup>redirigeix tant la sortida estàndard (stdout) com l'error estàndard (stderr) a un fitxer anomenatnohup.out>al directori actual. Si ho desitja, podeu especificar un fitxer de sortida diferent.
Puc utilitzar nohup> amb ordres o programes interactius?
Mentre
nohup>s'utilitza normalment amb ordres o scripts no interactius, podeu utilitzar-lo amb ordres interactives. Tanmateix, el comportament pot ser impredictible, especialment si l'ordre espera l'entrada de l'usuari. En general, es recomana evitar l'úsnohup>amb programes interactius.
Com puc comprovar l'estat d'una ordre que s'executa amb nohup> ?
Des que
nohup>executa l'ordre en segon pla, podeu utilitzar eines estàndard de Linux comps>otop>per comprovar l'estat del procés. Per exemple:ps aux | grep>Això us mostrarà informació sobre el procés, inclòs el seu PID (ID de procés), que podeu utilitzar per gestionar o supervisar l'ordre.
Conclusió
A Linux, quan executeu una ordre, normalment s'atura quan tanqueu el terminal. Però amb nohup> , podeu mantenir-lo en funcionament fins i tot després d'haver tancat el terminal. Això és molt pràctic, sobretot si esteu executant ordres de manera remota i no voleu que s'aturin si la vostra connexió cau.nohup>funciona protegint el vostre comandament dels senyals que normalment l'aturarien. Només afegeixesnohup>abans de la teva ordre, i continua. També podeu enviar la sortida de l'ordre a un fitxer. Només recordeu que és millor per a tasques no interactives i podeu comprovar l'estat de la vostra comanda mitjançant eines com araps>. Tan,nohup>és com una xarxa de seguretat per a les teves ordres, assegurant-te que segueixin avançant fins i tot quan no estàs mirant.