Nous vous avons expliqué ce qu'est un processus d'arrière-plan Linux et comment le démarrer correctement. Dans cet article, nous allons vous expliquer comment il fonctionne dans ce mode.
L'exécution d'un script sous Linux est une tâche, vous devez vous assurer qu'il fonctionne correctement juste après avoir fermé le terminal. Le terminal est fermé de la manière suivante : vous devez cliquer sur la croix située dans le coin supérieur de l'écran, ce qui entraîne l'arrêt de tous les processus d'arrière-plan. Il existe plusieurs méthodes pour les sauvegarder au cas où la connexion avec le shell interactif serait perdue
Premièrement : supprimez la file d'attente de la tâche en utilisant disown
:
disown
Comme dans les cas précédents, si plusieurs processus concurrents sont en cours d'exécution, vous devez spécifier le numéro de celui par rapport auquel l'action sera effectuée :
disown %1
Assurez-vous que la tâche ne figure pas dans la liste des tâches. Pour ce faire, utilisez l'utilitaire jobs -l. Utilisez l'utilitaire jobs -l
. Pour afficher la liste complète des processus en cours, la commande est utilisée :
ps aux
Méthode suivante : vous sauvegardez les processus en cours avec la commande nohup
. Cette commande, une fois exécutée, exécutera à son tour une autre commande, tous les signaux SIGHUP
étant ignorés.
Vous pouvez exécuter la commande en arrière-plan comme suit :
nohup command &
Comme vous pouvez le voir dans l'image ci-dessus, la sortie de la commande sera envoyée à nohup.out.
La chose la plus importante est qu'après la déconnexion et la fermeture du terminal, le processus continuera à fonctionner. Certains utilitaires vous permettent d'exécuter deux ou plusieurs sessions à la fois. C'est notamment le cas de Screen
et de Tmux
.
Screen
ou GNU Screen
est un multiplexeur de terminal qui vous permet de démarrer une session de travail et d'ouvrir un nombre quelconque de fenêtres (terminaux virtuels) à l'intérieur de celle-ci. Les processus exécutés dans ce programme fonctionneront même si leurs fenêtres sont invisibles ou si le programme s'est arrêté.Tmux
est une alternative plus moderne à GNU Screen
. Cependant, les fonctionnalités de Tmux
ne sont pas fondamentalement différentes - vous pouvez ouvrir de nombreuses fenêtres au cours d'une même session de la même manière. Les tâches exécutées dans Tmux
continuent de s'exécuter si le terminal est fermé.Nous avons résolu ce problème, comme vous pouvez le voir, tout est élémentaire et simple.