Commande Linux jobs
jobsest une commande intégrée dans les systèmes Linux/Unix utilisée pour afficher et gérer les tâches d'arrière-plan dans la session shell actuelle. Elle permet aux utilisateurs de :
- Afficher l'état de toutes les tâches d'arrière-plan
- Contrôler la permutation des tâches entre l'avant-plan et l'arrière-plan
- Gérer l'exécution de plusieurs tâches concurrentes
Lorsque vous exécutez des commandes de longue durée dans le terminal,jobsla commande peut vous aider à gérer efficacement ces processus en arrière-plan.
Syntaxe de base
jobs [选项] [作业标识符]
Options courantes
| Option | Description |
|---|---|
-l |
Afficher le PID (ID de processus) de la tâche |
-p |
Afficher uniquement l'ID du groupe de processus de la tâche |
-n |
Afficher uniquement les tâches dont le statut a changé depuis la dernière notification |
-r |
Afficher uniquement les tâches en cours d'exécution |
-s |
Afficher uniquement les tâches arrêtées |
Fonctionnalités principales détaillées
1. Afficher les tâches en arrière-plan
L'utilisation la plus simple consiste à saisir directement lejobscommande :
Exemples
[1] - en cours sleep 100 &
[2] + arrêté vim file.txt
Explication de la sortie :
[1]: Numéro de tâche (ID de tâche)-/+:-indique la tâche précédente,+indique la tâche en coursrunning/stopped: État de la tâche- La dernière partie est la commande qui a démarré la tâche
2. Afficher les informations détaillées sur le processus
Utilisez la-loption pour afficher l'ID de processus de la tâche :
Exemples
[1] - 12345 en cours sleep 100 &
[2] + 12356 arrêté vim file.txt
3. Filtrer les tâches par état spécifique
Exemples
$ jobs -r
# Afficher uniquement les tâches arrêtées
$ jobs -s
Scénarios d'application pratiques
Scénario 1 : Exécuter de longues tâches en arrière-plan
Exemples
$ long_running_command &
# Voir les tâches en arrière-plan
$ jobs
[1] + en cours d'exécution long_running_command &
Scénario 2 : Suspension et reprise des tâches
Exemples
$ vim file.txt
# Appuyer sur Ctrl+Z pour suspendre vim
^Z
[1] + arrêté vim file.txt
# Voir les tâches arrêtées
$ jobs -s
[1] + arrêté vim file.txt
# Remettre vim au premier plan
$ fg %1
Scénario 3 : Gestion de plusieurs tâches en arrière-plan
Exemples
$ sleep 100 &
$ sleep 200 &
$ sleep 300 &
# Afficher toutes les tâches
$ jobs -l
[1] 12345 en cours sleep 100 &
[2] -12356 en cours sleep 200 &
[3] +12367 en cours sleep 300 &
# Remettre la tâche 2 au premier plan
$ fg %2
# Terminer la tâche 3
$ kill %3
Combinaisons de commandes de contrôle des tâches
jobsGénéralement utilisé avec d'autres commandes de contrôle des tâches :
| Commande | Description | Exemple |
|---|---|---|
& |
Mettre une commande en arrière-plan | command & |
Ctrl+Z |
Suspendre la tâche de premier plan actuelle | Combinaison de touches |
fg |
Remettre une tâche au premier plan | fg %1 |
bg |
Continuer à exécuter une tâche arrêtée en arrière-plan | bg %2 |
kill |
Terminer une tâche spécifiée | kill %3 |
Questions fréquentes
Q1 : Pourquoi les tâches en arrière-plan se terminent-elles après la fermeture du terminal ?
R : Par défaut, les tâches en arrière-plan sont associées à la session du terminal. En utilisantnohupoudisownpeut garder les tâches en cours d'exécution après la fermeture du terminal :
Exemples
Q2 : Comment faire référence à une tâche spécifique ?
R : Utilisez%plus le numéro de tâche :
%1: Tâche 1%2: Tâche 2%+ou%%: Tâche actuelle%-: Tâche précédente
Q3 : Quelle est la différence entre les commandes jobs et ps ?
A:
jobsAffiche uniquement les tâches dans la session shell actuellepsAffiche tous les processus système, y compris les processus des autres utilisateurs et terminaux
Recommandations de bonnes pratiques
Rediriger la sortie pour les tâches en arrière-plan: Éviter que la sortie n'interfère avec le terminal actuel
$ command > output.log 2>&1 &
Utiliser des noms descriptifs: Facilite l'identification des différentes tâches
$ (sleep 300; echo "Done") &
Vérifier régulièrement l'état des tâches: Empêche l'accumulation d'un grand nombre de tâches inachevées
$ watch -n 60 jobs
Utiliser nohup pour les tâches importantes: Garantit qu'elles continuent de s'exécuter après la déconnexion du terminal
$ nohup important_command &
Organigramme récapitulatif

Référence des commandes Linux