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