&

Auteur: Ikipou

Dans Bash, le caractère "&" est un opérateur de contrôle. Lorsqu'il est utilisé à la fin d'une commande, il sert à lancer celle-ci en arrière plan.

Utilisation

Pour lancer une tâche en arrière plan, il suffit de terminer la ligne par le caractère "&".

Voici par exemple le lancement du serveur GlassFish en arrière plan:

$ asadmin start-domain lingua_dom
[1] 3363

Le retour de la commande donne le numéro de job entre crochet, et le numéro de processus (PID) ensuite. La tâche est toujours attachée à la console, elle est devenue une tâche de l'interpréteur. Utilisez jobs pour lister les tâches active, et fg pour mettre une tâche au premier plan.

La commande tel que lancé ci-dessus est toujours liée à l'interpréteur Bash. Si le shell est fermé, l'exécution de la commande s'arrêtera. Pour lancer une tâche en dehors de l'interpréteur, il faut utiliser l'opérateur de redirection ">" pour lier les flux de sorties à un fichier.

Voici le même exemple que le précédent mais là tâche est indépendante de l'interpréteur:

$ asadmin start-domain lingua_dom >/dev/null 2>&1 &

Pour plus d'information sur les redirections, regardez la page dédié à l'opérateur de redirection.

Page de manuel

Il n'y a pas de page de manuel dédié à cette fonctionnalité mais celle-ci est décrite en détail dans la page de manuel de Bash,

Si quelqu'un avance une nouveauté qui contredit ou menace de
renverser le credo récité et transmis depuis des années, les
passions se dressent contre lui et tout le monde s'unit pour
l'écraser. Les hommes résistent tant qu'ils peuvent; ils font
comme s'ils étaient sourds ou incapables de comprendre; ils
parlent de la nouvelle conception avec mépris, comme si elle ne
méritait pas le moindre examen et n'était même pas digne d'un
regard : voilà comment les vérités nouvelles attendent longtemps
avant de pouvoir se frayer un chemin.
-+- Johann Wolfgang von Goethe, Entretiens -+-