Question : Je sais comment exécuter une commande Unix au premier plan. Pouvez-vous s'il vous plaît m'expliquer comment je peux exécuter une commande Linux en arrière-plan ?
Réponse : Vous pouvez utiliser l'une des 5 méthodes expliquées dans cet article pour exécuter une commande Linux ou un script shell en arrière-plan.
1. Exécuter une commande en arrière-plan en utilisant &
Vous pouvez exécuter une commande (ou un script shell) en arrière-plan en ajoutant une esperluette à la commande, comme indiqué ci-dessous.
$ ./my-shell-script.sh &
Lisez Bg, Fg, &, Ctrl-Z - 5 exemples pour gérer les tâches d'arrière-plan Unix pour comprendre plus de détails.
2. Exécuter une commande en arrière-plan en utilisant nohup
Après avoir exécuté une commande (ou un script shell) en arrière-plan à l'aide de &, si vous vous déconnectez de la session, la commande sera tuée. Pour éviter cela, vous devez utiliser nohup comme indiqué ci-dessous.
$ nohup ./my-shell-script.sh &
Lisez Unix Nohup :Exécutez une commande ou un script shell même après votre déconnexion pour comprendre plus de détails.
3. Exécuter une commande à l'aide de la commande screen
Après avoir exécuté une commande en arrière-plan à l'aide de nohup et &, la commande sera exécutée même après votre déconnexion. Mais vous ne pouvez pas vous reconnecter à la même session pour voir exactement ce qui se passe à l'écran. Pour ce faire, vous devez utiliser la commande screen.
La commande d'écran Linux offre la possibilité de détacher une session qui exécute un processus, puis de l'attacher ultérieurement. Lorsque vous rattacherez la session plus tard, vos terminaux seront là exactement comme vous les avez laissés plus tôt.
Reportez-vous aux exemples de commandes d'écran :obtenez le contrôle du terminal Linux / Unix pour comprendre plus de détails.
4. Exécuter une commande en tant que travail par lots en utilisant at
À l'aide de la commande at, vous pouvez programmer une tâche pour qu'elle s'exécute à une date et une heure particulières. Par exemple, pour exécuter le script de sauvegarde demain à 10h00, procédez comme suit.
$ at -f backup.sh 10 am tomorrow
Lisez Comprendre les commandes at, atq, atrm, batch en utilisant 9 exemples pour plus de détails.
L'exécution de certains travaux en mode batch nécessite l'activation de certaines options. Les articles suivants apporteront des éclaircissements à ce sujet.
- Comment capturer la sortie de la commande Unix Top dans un fichier au format lisible
- Calculateur de ligne de commande Unix bc en mode batch
- Comment exécuter SSH et SCP en mode batch (uniquement lorsque la connexion sans mot de passe est activée)
5. Exécuter une commande en continu à l'aide de watch
Pour exécuter une commande en continu à un certain intervalle, utilisez la commande watch comme indiqué ci-dessous.
$ watch df -h
Lisez la montre :répétez les commandes Unix ou les scripts Shell toutes les N secondes pour comprendre plus de détails.