Come eseguire i comandi Bash in background in Linux

Non c’è niente di più fastidioso che eseguire un comando nel tuo terminale e farlo funzionare per minuti, a volte ore, e non essere in grado di utilizzare nuovamente il tuo terminale. Certo, puoi usare le schede, ma questa è una soluzione goffa e non è sempre ottimale perché potresti voler vedere gli aggiornamenti mentre stai lavorando. Qui vi mostriamo alcuni modi diversi per eseguire i comandi bash in background in Linux.,

Termina un comando con&

Se vuoi spingere un comando in background, usare& alla fine è un modo semplice per farlo. In questo modo, puoi emettere un comando in background e continuare a utilizzare il tuo terminale mentre viene eseguito. Viene fornito con un fermo, però. L’utilizzo di & non disconnette il comando da te; lo spinge semplicemente in background., Ciò significa che mentre si sta tentando di utilizzare il terminale, tutto ciò che il comando vuole spingere a STDOUT o STDERR verrà comunque stampato, il che potrebbe essere fonte di distrazione.

COMANDO &

Quando il terminale viene chiusa la sessione, il comando termina., Puoi anche uccidere il comando emettendo il comandojobs, trovando il numero del comando in esecuzione e uccidendolo con il comandokill. Che la sintassi è la seguente:

uccidere %1

Con & è buono se avete bisogno di spingere qualcosa fuori per un po’, ma non si aspettano di continuare per sempre.,

& Dopo un comando, quindi rinnegarlo

Eseguendo un comando con solo& lo spinge sul retro e lo mantiene in esecuzione finché la finestra del terminale è aperta. Se, tuttavia, stai cercando di mantenere questo comando in esecuzione costante, anche con la fine della sessione del terminale, puoi utilizzare il comando disown.

Per utilizzare questo metodo, iniziare aggiungendo un &.,

COMANDO &

Come accennato in precedenza, l’uso di & spinge questo comando in background, ma non rimuoverlo dal vostro utente. È possibile verificare questo digitando jobs nel terminale. Mostrerà il comando in esecuzione in background come abbiamo visto prima.

Basta digitaredisown nella shell, e farà proprio questo. (E puoi ancora una volta verificarlo con il comandojobs.,)

Si può solo rendere il disown comando c’

Ora si può chiudere il terminale e continuare la tua giornata. Continuerà a pipare le cose su STDOUToSTDERR, ma una volta che esci e riapri il tuo terminale, non vedrai nulla lì., È possibile trovare nuovamente il comando con i comanditop ops e ucciderlo con il comandokill.

Il lavoro rinnegato è il secondo, con il PID 16238.,

& Dopo un Comando con /dev/null

Aggiunta di & dopo un comando premere un comando in background, ma come risultato, lo sfondo comando continuerà a stampare i messaggi nel terminale che si sta utilizzando. Se stai cercando di evitare questo, considera di reindirizzare il comando a /dev/null.,

COMANDO &>/dev/null &

Questo non impedisce il comando di chiusura quando il terminale si chiude. Tuttavia, come accennato in precedenza, è possibile utilizzaredisown per disconoscere il comando in esecuzione dall’utente. Puoi anche ucciderlo in uno dei metodi sopra menzionati se non vuoi più che funzioni.,

Nohup, con& e/dev/null

A differenza dei comandi precedenti, l’utilizzo dinohup consente di eseguire un comando in background e mantenerlo in esecuzione. Come? nohup bypassa il segnale HUP (signal hang up), rendendo possibile l’esecuzione di comandi in background anche quando il terminale è spento. Combina questo comando con il reindirizzamento a “/ dev / null ” (per impedire a nohup di fare un nohup.out file), e tutto va in background con un solo comando.,

nohup COMANDO &>/dev/null &

la Maggior parte dei programmi di terminale su Linux oggi hanno caratteristiche integrato per consentire l’esecuzione in background, con un piccolo sforzo. Insieme a ciò, i moderni sistemi init (come systemd) possono consentire agli utenti di avviare programmi come servizi all’avvio o in qualsiasi momento.,

Tuttavia, alcuni programmi su Linux non hanno la capacità di funzionare come demone o di integrarsi con i moderni sistemi init. Questo è un vero inconveniente, ma è comprensibile, in quanto non tutti gli sviluppatori hanno l’abilità o il tempo per aggiungere nuove funzionalità.

Fortunatamente, comandi come nohupodisown sono ancora una realtà e possono colmare il divario nello spostamento di programmi come questo in background. Non sono perfetti o di fantasia, ma ottengono il lavoro fatto quando necessario.,

Se ti è piaciuto questo articolo di Linux, assicurati di controllare alcuni dei nostri altri contenuti Linux, come come collegare il tuo account Google a GNOME Shell, 5 delle migliori distribuzioni Linux per utenti Windows nel 2021 e 15 comandi LS che devi sapere.

Related:

John Perkins

John è un giovane tecnico professionista con la passione di educare gli utenti sui modi migliori per utilizzare la loro tecnologia. Ha conseguito certificazioni tecniche che coprono argomenti che vanno dall’hardware del computer alla sicurezza informatica all’amministrazione del sistema Linux.,

Ricevi le nostre storie nella tua casella di posta.

Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *