BashJ’ai récemment mis à jour mon article sur Rsync pour rapatrier quelques fichiers du serveur vers mon NAS Synology et me suis demandé comment je pouvais faire pour ouvrir un terminal, lancer un Rsync qui va sûrement me prendre des heures et fermer le terminal sans que cela interrompe la sauvegarde.

Voici quelques pistes pour lancer une commande en arrière-plan avec BASH.

Créer un sous-shell

On crée un sous-shell (subshell) en lançant la commande avec des parenthèses. Le signe & (ampersand) est nécessaire, tout comme la commande exit qui permet de quitter proprement le terminal sans terminer le processus :

(sleep 100) & exit

On ouvre un autre terminal et on vérifie que notre tâche est toujours en cours :

ps aux | grep sleep

Utiliser disown

Une autre manière de faire est d’utiliser disown :

spleep 60 & disown

Le système attribue un numéro de processus à notre tâche. On peut alors fermer le terminal comme un barbare, la tâche reste en cours :

ps aux | grep sleep

A garder sous le coude.

Si vous avez trouvé une faute d’orthographe, veuillez nous en informer en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée .

Articles en rapport:

Matt
Author

Matt est formateur, développeur expert WordPress et WooCommerce, et administrateur réseau chez Codeable.

2 Comments

  1. Avatar

    Y’a aussi avec screen, qui permet de créer des terminaux « virtuels »:
    screen -S rsync
    *on lace rsync etc*
    Pour revenir au terminal principal : ctrl+a, d
    Et pour revenir sur rsync : screen -r rsync

Écrire un commentaire

Rapport de faute d’orthographe

Le texte suivant sera envoyé à nos rédacteurs :