GNU/Linux >> Tutoriels Linux >  >> Linux

Comment suspendre un processus et le reprendre plus tard sous Linux

Imaginez ce scénario. Vous exécutez un programme. Mais, vous ne savez pas combien de temps il faudra pour terminer. Le processus dure plusieurs minutes. Vous ne pouvez pas attendre plus longtemps, car d'autres programmes importants attendent dans la file d'attente. Avez-vous déjà été dans une situation comme celle-ci? Pas de soucis! Je viens de trouver une astuce simple pour suspendre un processus et le reprendre plus tard sous Linux.

Ce que je vais faire, c'est simplement mettre en pause le processus en cours d'exécution, effectuer d'autres tâches importantes, puis reprendre le processus arrêté une fois tous les autres processus terminés.

Cela peut être très utile lorsque vous avez moins de RAM ou de processeur pour effectuer plusieurs tâches. Vous pouvez suspendre les processus en cours à tout moment et les reprendre plus tard, sans avoir à les recommencer.

Maintenant, apprenons à suspendre ou à mettre en pause un processus en cours d'exécution et à le reprendre plus tard dans les systèmes d'exploitation Linux et Unix.

Suspendre un processus et le reprendre plus tard sous Linux

C'est absolument facile! Tout ce que vous avez à faire est de trouver le PID (Process ID) et d'utiliser ps ou ps aux commande, puis mettez-la en pause, enfin reprenez-la en utilisant kill commande.

Voyons un exemple. Je vais télécharger l'image netboot d'Ubuntu 18.04 en utilisant wget commande :

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

Ici, & le symbole déplacera la tâche en cours d'exécution (c'est-à-dire wget ) en arrière-plan sans le fermer.

Maintenant, je veux mettre cette tâche en pause et exécuter d'autres tâches importantes. Pour ce faire, recherchez d'abord les processus en cours d'exécution à l'aide de la commande :

$ ps

Exemple de résultat :

  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

Comme vous le voyez, le PID de la commande wget est 16143 .

Arrêtons ce processus maintenant. Pour cela, lancez la commande suivante depuis votre Terminal :

$ kill -STOP 16143

Vérifiez si le processus a été arrêté ou non à l'aide de la commande :

$ ps

Exemple de résultat :

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

Voir? Le wget le processus a été arrêté.

Allez-y et faites d'autres tâches importantes. Une fois toutes les tâches terminées, reprenez le processus arrêté à l'aide de la commande :

$ kill -CONT 16143

Pour vérifier si le processus est en cours d'exécution, exécutez ps commande.

$ ps

Voir? Le processus que nous avons arrêté plus tôt a repris !

Comme je l'ai déjà dit, cela sera utile si vous ne pouvez pas effectuer plusieurs tâches dans un système à faible vitesse de RAM ou de processeur.

TL;DR

Tout d'abord, recherchez le pid du processus en cours d'exécution à l'aide de la commande ps. Ensuite, mettez-le en pause en utilisant kill -STOP <PID> , puis hibernez votre système. Reprenez votre système et reprenez le processus arrêté à l'aide de la commande kill -CONT <PID> .

Cela fonctionnera-t-il après le redémarrage de mon système ?

Vous vous demandez peut-être si cela fonctionnera également après un arrêt ou un redémarrage complet du système ? NON . Parce que les PID des processus changeront automatiquement après le redémarrage de votre système. Ils ne persistent pas après le redémarrage. Dans de tels cas, vous pouvez suspendre ou hiberner l'ensemble de votre système et les reprendre lorsque vous êtes prêt.

Et c'est tout. Vous savez maintenant comment mettre en pause et reprendre un processus dans les systèmes d'exploitation Linux et Unix. J'espère que cela vous aidera.

Lecture recommandée :

  • Arrêt automatique, redémarrage, suspension, mise en veille prolongée de votre système Linux à une heure précise
  • Réveillez automatiquement votre système Linux du mode veille ou hibernation
  • Reptyr – Déplacer un processus en cours d'exécution d'un terminal à un autre sans le fermer
  • Comment ajouter des commandes Linux à la file d'attente et les exécuter une par une
  • Comment afficher les informations de processus à l'aide de Procs sous Linux

Linux
  1. Comment tuer un processus zombie sous Linux

  2. Comment démarrer la commande Linux en arrière-plan et détacher le processus dans le terminal

  3. Comment suspendre et mettre un processus d'arrière-plan au premier plan ?

  4. Comment hiberner un processus sous Linux en stockant sa mémoire sur disque et en le restaurant plus tard ?

  5. Linux :Comment savoir où un processus a été démarré et comment il a été démarré ?

Comment travailler avec le processus de premier plan et d'arrière-plan sous Linux

Comment tuer un processus sous Linux

Comment désactiver les modes suspension et hibernation sous Linux

Comment trouver le PID et le PPID d'un processus sous Linux

Comment tuer les processus sous Linux en utilisant kill, killall et pkill

Comment suivre et tracer un processus Linux