Come visualizzare ed eseguire i processi in background di Linux

L'esecuzione dei processi è fondamentale in qualsiasi sistema operativo utilizzato poiché garantiscono che sia le applicazioni che gli altri elementi del sistema operativo possano agire in modo corretto sia nella compatibilità che nell'esecuzione delle loro funzioni.

Ogni sistema operativo può gestire i processi in modo diverso, ma nel caso di Linux, di norma, i processi sono associati a un terminale. Ciò significa che deve essere aperto affinché il processo possa funzionare normalmente, ma questa azione può portare a situazioni come:

  • Il terminale aperto può contenere molti dati di output o messaggi di errore/diagnostica che rendono difficile non solo leggere i dati ma anche gestirli.
  • Se dovessimo chiudere il terminale, il processo insieme ai suoi processi secondari finirà per influenzare direttamente l'attività da svolgere.

In questo tipo di scenario, è fondamentale eseguire i processi necessari in background, un processo in background è il processo che verrà eseguito in modo nascosto e per il suo funzionamento non è richiesto l'intervento dell'utente, in questo modo, sebbene il terminale è chiuso principale, il processo continuerà a eseguire il suo compito. I processi in background si applicano a quelle attività che possono richiedere tempo, come script, download di file e altro, in cui non possiamo aspettare che l'azione venga completata senza fare nulla.

In Linux possiamo eseguire processi in primo piano o in background. Un programma in primo piano quando viene eseguito nel terminale, non saremo in grado di eseguire nessun altro comando fino al termine del processo, ma può essere eseguito dallo sfondo o dallo sfondo.

Un programma che viene eseguito in background una volta avviato non utilizza il terminale dal momento in cui è stato eseguito fino alla fine. Per eseguire un software o un comando in background dal terminale aggiungiamo Se aggiungiamo una e commerciale (&) alla fine del comando o dello script che vogliamo eseguire, verrà eseguito in background dal sistema operativo. Esempio:

 nano e 
Solvetic spiegherà come possiamo vedere ed eseguire processi in background su Linux.

1. Vedi l'elenco dei processi con il comando ps in Linux


Con il comando comando ps, possiamo conoscere lo stato di un processo.Ps è lo stato del processo o lo stato del processo. Il comando ps non elenca i processi e specifica alcune colonne PID, TTY, TIME e CMD.

PID (numero di processo)Ogni processo riceve un numero di identificazione univoco, assegnato dal kernel Linux.

TTYè il terminale associato al processo, può anche essere un altro dispositivo di input.

VOLTAIl tempo di esecuzione del processo.

CMDÈ il nome del comando che viene eseguito, bash è il processo della shell.

Ad esempio, con il comando ps -A ci mostrerà tutti i processi in esecuzione.

2. Avvia un processo o un comando in background su Linux usando bg su Linux


Il comando bg è stato sviluppato come comando di controllo dei lavori che riprende i lavori sospesi, ma li esegue in background.

Passo 1
La sintassi di base di questo comando è la seguente:

 bg [lavoro] 
Passo 2
Nel caso in cui un processo sia già in esecuzione, dobbiamo premere i seguenti tasti per fermarlo e quindi inserire il comando bg per continuare la sua esecuzione in background come lavoro. Per questo esempio utilizzeremo le seguenti righe:

Ctrl + Z

 tar -czf home.tar.gz. (processo in esecuzione che verrà interrotto con Ctrl + Z) bg (esecuzione del comando in background) job (visualizzazione dei lavori eseguiti)

Passaggio 3
Possiamo vedere che il processo è ancora in esecuzione, ma ora in background. Sarà inoltre possibile eseguire un processo direttamente in background inserendo la e commerciale alla fine di esso:

 tar -czf home.tar.gz. & Lavori 

3. Salva i processi Linux in esecuzione dopo essere usciti dal terminale in Linux


Questo è un punto essenziale poiché, come abbiamo detto, in modalità normale quando il terminale è chiuso termineranno tutti i processi attivi, in modo che sia possibile consentire loro di continuare a funzionare anche quando il terminale è chiuso.

A questo scopo possiamo utilizzare il comando disown che verrà utilizzato dopo che un processo è stato avviato ed è stato messo in background, il comando disown è un lavoro di shell la cui missione è eliminare i lavori dall'elenco attivo della Shell attiva.

Passo 1
Con l'esecuzione di disown, quando chiudiamo il terminale, il lavoro non andrà in crash né invierà un SIGHUP a nessun lavoro figlio. La sua sintassi di base è:

 rinnegare jobID 
Passo 2
Per il suo funzionamento eseguiremo quanto segue:
 sudo rsync Templates / * / var / www / html / files / & (comando da eseguire) jobs (lavori attivi) disown -h% 1 (ordine di non chiudere il processo o comando) jobs (visualizzazione dei lavori)

NotaIn caso di esecuzione di più di un processo o comando, possiamo vedere che ognuno di essi riceve un ID di identificazione, questo deve essere inserito con disown per specificare quale processo continuerà a funzionare.

Passaggio 3
Le opzioni da utilizzare con il disown sono:

-aRimuove tutti i lavori se jobID non viene fornito.

-hContrassegna ogni ID lavoro in modo che SIGHUP non venga inviato al lavoro se la shell riceve un SIGHUP.

-RCancella solo i lavori in esecuzione.

4. Salva i processi Linux in esecuzione dopo essere usciti dal terminale in Linux


Il compito di base del comando nohup è impedire che il comando venga annullato automaticamente quando si disconnette o si esce dalla shell. Quando si utilizza il comando nohup (no hangup), il segnale di riaggancio (HUP), che viene inviato a un processo per informarlo che l'utente si è disconnesso, viene intercettato da nohup per consentire al processo di continuare a funzionare in pochi secondi.

Passo 1
La sintassi di utilizzo è la seguente:

 comando nohup [argomento-comando …] 
Passo 2
Per questo caso useremo il seguente esempio. Se lo standard input è un terminale, nohup lo reindirizza da /dev/null. Pertanto, l'input del terminale non è possibile quando si esegue un comando con nohup. Nel caso in cui l'output standard sia un terminale, l'output del comando viene aggiunto al file nohup.out o $ HOME / nohup.out. Se l'errore standard è un terminale, viene reindirizzato allo standard output. Per salvare l'output in un file, dobbiamo usare "comando nohup> file".
 nohup tar -czf iso.tar.gz Modelli / * e lavori

5. Scollega un processo Linux nel terminale

Passo 1
Se l'obiettivo è separare completamente un processo dal terminale, dovremmo usare la seguente sintassi:

 app / dev / null & 
Passo 2
Ad esempio:
 firefox / dev / null & 

6. Usa i processi in background con Screen su Linux


In caso di utilizzo di un comando in background, con le opzioni nohup e &), verrà eseguito anche dopo aver chiuso la sessione, il problema è che, quando ci riconnetteremo nuovamente alla stessa sessione, non vedremo il lavoro attivo in lo sfondo, per correggere questo c'è il comando dello schermo.

screen è un gestore di finestre a schermo intero che gestisce un terminale fisico tra diversi processi, normalmente le shell sono interattive. Ogni terminale virtuale offre le funzioni di un terminale DEC VT100 e, inoltre, diverse funzioni di controllo degli standard ISO 6429 (ECMA 48, ANSI X3.64) e ISO 2022 che lo rendono estremamente dinamico.

Quando eseguiamo screen, viene creata una singola finestra con una shell o il comando specificato e quindi ignorata per poter utilizzare normalmente il programma.

Passo 1
Per installare screen in Linux eseguiremo quanto segue. Lì inseriamo la lettera S per confermare il download e l'installazione.

 schermata di installazione sudo apt

Passo 2
Una volta installato eseguiamo il comando "screen" e vedremo quanto segue:

Passaggio 3
Lì premiamo il tasto Invio per essere reindirizzati alla nuova finestra in cui eseguiamo il processo o il comando da utilizzare in background:

 sudo tar czf temp.tar.gz / tmp & 

Passaggio 4
Saremo in grado di visualizzare le finestre attive utilizzando. Per uscire dalla sessione dello schermo possiamo usare i tasti

Ctrl + a + d

Ctrl + alt + d

 schermo -ls 

7. Arresta o termina un processo sospeso o in background su Linux


Per questa azione, che consiste nel terminare l'esecuzione del processo in background, possiamo utilizzare il comando "kill" e al posto del PID possiamo specificare l'identificatore del lavoro, ad esempio:
 job (elencare i lavori correnti) kill% 2 (il processo kill o termina si identifica come 2)

8. Arresta un processo o porta un processo in background


Alcuni programmi impiegano molto tempo per essere completati e nel frattempo non fanno nulla di importante. La compilazione di programmi è una di queste attività, così come la compressione di un file di grandi dimensioni. Non ha senso smettere di usare il computer mentre questi processi terminano e consumano risorse. In questi casi è meglio eseguirli in background, per lasciare il computer in grado di eseguire un altro programma.

I processi possono essere sospesi. Un processo sospeso è un processo che non è attualmente in esecuzione, ma è temporaneamente interrotto. Dopo aver sospeso un'attività, è possibile indicare all'attività di continuare, in primo piano o in secondo luogo, secondo necessità. La ripresa di un'attività sospesa non modifica affatto lo stato dell'attività poiché continuerà a essere eseguita esattamente da dove era stata interrotta.

Passo 1
Per interrompere un processo viene utilizzata la seguente combinazione, premendo questa combinazione il processo muore e tutte le risorse vengono rilasciate.

Ctrl + C

Passo 2
Proviamo a inviare un comando ripetuto in background. Il comando yes viene utilizzato per testare lo script che richiede molte conferme.Ciò che fa è ripetere "e" con tutto ciò che è scritto davanti all'infinito fino a quando lo script non viene interrotto o l'utente lo interrompe:

  • Se digitiamo "yes" nel terminale e vedremo un elenco infinito di "e".
  • Se digitiamo yes ciao nel terminale e vedremo un elenco infinito di ciao

Passaggio 3
Per eliminare un file senza premere alcun tasto quando chiede conferma possiamo usare

 si | rm -i * .txt 
Passaggio 4
Per inviare un processo in background lo chiamiamo dalla riga di comando seguito da & create infiniti dispositivi null
 sì> / dev / null & 
Passaggio 5
Questo ci mostrerà il numero dell'attività e il pid [1] 4106. Se ora usiamo il comando jobs vedremo
 [1] + Esecuzione yes> / dev / null &
Passaggio 6
per portarlo in primo piano scriviamo fg 1 e per killare il processo kill 4106 che è il pid.
 Fg 1 Uccidi 4106
Con una qualsiasi delle opzioni indicate, sarà possibile gestire i processi in background in Linux in modo molto più centralizzato e quindi consentire l'esecuzione delle attività richieste anche quando la sessione è chiusa.

wave wave wave wave wave