Lorsqu’il s’agit de gérer des processus sous Linux, il est souvent nécessaire d’exécuter des commandes en arrière-plan afin de continuer à travailler sur d’autres tâches sans interruption. Voici un guide détaillé sur la façon d’initier et de gérer ces processus en arrière-plan.
Comment exécuter une commande en arrière-plan sous Linux ?
Pour exécuter une commande dans le terminal en arrière-plan, la méthode la plus simple consiste à ajouter une esperluette (&) à la fin de la commande. Par exemple, si vous souhaitez lancer une tâche de copie de fichiers, vous pouvez utiliser :
cp fichier1.txt fichier2.txt &
Cette approche permet de libérer le terminal pour d’autres commandes tout en continuant l’exécution de la tâche de copie.
Suspendre et reprendre un processus
Si vous avez déjà démarré un processus en première plan et que vous souhaitez le déplacer en arrière-plan, il est possible de le suspendre temporairement. Voici comment faire :
Suspendre le processus : Tout d’abord, appuyez sur Ctrl + Z. Cela mettra le processus en pause et le déplacera vers l’arrière-plan.
Reprendre en arrière-plan : Pour continuer son exécution sans le ramener au premier plan, tapez
bg
et appuyez sur Entrée.
Gestion des processus en arrière-plan
Une fois que vous avez démarré des processus en arrière-plan, il est essentiel de pouvoir les gérer facilement. Utilisez les commandes suivantes :
Pour visualiser les tâches en cours et leurs états, utilisez
jobs
. Cela affichera une liste de tous les processus actifs en arrière-plan.Pour ramener un processus spécifique en avant-plan, utilisez
fg %n
, oùn
est le numéro de tâche indiqué par la commandejobs
.Pour terminer un processus en arrière-plan, utilisez
kill
, oùPID
est l’identifiant de processus que vous pouvez obtenir viajobs
.
Utiliser disown pour séparer un processus
La commande disown
vous permet de détacher un processus de votre terminal. Cela peut être utile si vous souhaitez quitter le terminal sans arrêter un processus en cours. Voici comment l’utiliser :
Identifiez le numéro de tâche ou l’ID de processus à l’aide de
jobs
.Ensuite, tapez
disown %n
, oùn
est le numéro de tâche. Cela retire le processus de la gestion du shell et il continuera de fonctionner en arrière-plan.
Différences entre nohup et &
Lors du lancement d’un processus en arrière-plan, il est important de comprendre la différence entre l’utilisation de &
et de nohup
. La commande nohup
permet à un processus de continuer à s’exécuter même si vous fermez la session de terminal. À l’inverse, un processus lancé avec &
pourrait être arrêté si le shell se termine. Pour utiliser nohup
, tapez :
nohup votre_commande &
Cette technique est particulièrement utile pour les tâches longues que vous souhaitez laisser s’exécuter sans interruption.
FAQ
1. Que se passe-t-il si je ferme le terminal pendant l’exécution d’un processus en arrière-plan ?
Si vous n’utilisez pas nohup
, le processus sera généralement arrêté lorsque vous fermez le terminal. En utilisant nohup
, le processus peut continuer à s’exécuter.
2. Comment retrouver un processus dont j’ai perdu l’ID ?
Utilisez la commande jobs
pour afficher tous les processus actuellement en cours d’exécution dans votre session. Si le processus est détaché, vous devrez utiliser la commande ps
pour lister tous les processus actifs.
3. Est-il possible de limiter l’utilisation des ressources d’un processus en arrière-plan ?
Oui, vous pouvez utiliser des outils comme `nice` ou `renice` pour modifier la priorité d’un processus. Cela permet de gérer l’utilisation des ressources selon vos besoins.