GNU/Linux >> Linux Esercitazione >  >> Linux

Come sospendere un processo e riprenderlo in un secondo momento in Linux

Immagina questo scenario. Tu esegui un programma. Ma non sai quanto tempo ci vorrà per finire. Il processo continua a funzionare per diversi minuti. Non puoi aspettare ancora a lungo, perché alcuni altri programmi importanti sono in coda. Ti è mai capitato di trovarti in una situazione del genere? Nessun problema! Ho appena trovato un semplice trucco per sospendere un processo e riprenderlo in seguito in Linux.

Quello che farò è semplicemente mettere in pausa il processo attualmente in esecuzione, eseguire alcune altre attività importanti e quindi riprendere il processo interrotto dopo che tutti gli altri processi sono stati completati.

Questo può essere molto utile quando hai meno RAM o Processore per svolgere più attività. Puoi mettere in pausa i processi in esecuzione in qualsiasi momento e riprenderli in un secondo momento, senza doverli ricominciare da capo.

Ora andiamo avanti e impariamo a sospendere o mettere in pausa un processo in esecuzione e riprenderlo in un secondo momento nei sistemi operativi simili a Linux e Unix.

Sospendi un processo e riprendilo più tardi in Linux

Questo è assolutamente facile! Tutto quello che devi fare è trovare il PID (Process ID) e utilizzare ps o ps aux comando, quindi mettilo in pausa, infine riprendilo utilizzando kill comando.

Vediamo un esempio. Scaricherò l'immagine di avvio da rete di Ubuntu 18.04 usando wget comando:

$ wget http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso &

Qui, & Il simbolo sposterà l'attività in esecuzione (ad esempio wget ) sullo sfondo senza chiuderlo.

Ora voglio mettere in pausa questa attività ed eseguire altre attività importanti. Per farlo, trova prima i processi in esecuzione usando il comando:

$ ps

Risultato di esempio:

  PID TTY          TIME CMD
30056 pts/0    00:00:00 bash
16143 pts/0    00:00:01 wget
32677 pts/0    00:00:00 ps

Come vedi, il PID del comando wget è 16143 .

Fermiamo ora questo processo. Per farlo, esegui il seguente comando dal tuo Terminale:

$ kill -STOP 16143

Verifica se il processo è stato interrotto o meno utilizzando il comando:

$ ps

Risultato di esempio:

PID TTY TIME CMD
8155 pts/0 00:00:00 bash
16143 pts/0 00:00:01 wget
16398 pts/0 00:00:00 ps

[1]+ Stopped wget http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso

Vedere? Il wget il processo è stato interrotto.

Vai avanti e svolgi altri compiti importanti. Una volta completate tutte le attività, riprendere il processo interrotto utilizzando il comando:

$ kill -CONT 16143

Per verificare se il processo è in esecuzione, esegui ps comando.

$ ps

Vedere? Il processo che avevamo interrotto in precedenza è stato ripreso!

Come ho già detto, questo sarà utile se non puoi eseguire più attività in un sistema che ha una bassa velocità della RAM o della CPU.

TL;DR

Innanzitutto, trova il pid del processo in esecuzione usando il comando ps. Quindi, mettilo in pausa usando kill -STOP <PID> , quindi ibernare il sistema. Riprendere il sistema e riprendere il processo interrotto utilizzando il comando kill -CONT <PID> .

Funzionerà dopo aver riavviato il mio sistema?

Potresti chiederti, funzionerà anche dopo un arresto o un riavvio completo del sistema? NO . Perché i PID dei processi cambieranno automaticamente dopo il riavvio del sistema. Non persistono durante il riavvio. In questi casi, puoi sospendere o ibernare l'intero sistema e riprenderlo quando sei pronto.

E questo è tutto. Ora sai come mettere in pausa e riprendere un processo nei sistemi operativi simili a Linux e Unix. Spero che questo aiuti.

Lettura consigliata:

  • Autospegnimento, riavvio, sospensione e ibernazione del sistema Linux in un momento specifico
  • Riattiva automaticamente il tuo sistema Linux dalla modalità di sospensione o ibernazione
  • Reptyr:sposta un processo in esecuzione da un terminale all'altro senza chiuderlo
  • Come aggiungere comandi Linux alla coda ed eseguirli uno per uno
  • Come visualizzare le informazioni di processo utilizzando Procs su Linux

Linux
  1. Come uccidere un processo zombie su Linux

  2. Come impostare la priorità del processo Linux usando i comandi nice e renice

  3. Come ibernare un processo in Linux memorizzando la sua memoria su disco e ripristinandola successivamente?

  4. Come mettere in pausa/riprendere un processo in Linux

  5. Linux:come sapere dove è stato avviato un processo e come è stato avviato?

Come lavorare con il processo in primo piano e in background in Linux

Come KILL un processo su Linux

Come disabilitare le modalità di sospensione e ibernazione in Linux

Come trovare il PID e il PPID di un processo in Linux

Come uccidere i processi in Linux usando kill, killall e pkill

Come tracciare e tracciare un processo Linux