J'ai copié un extrait de Bash en arrière-plan d'une commande ssh exécutée à distance:
ssh user@remote <<CMD
some process <&- >log 2>error &
CMD
Que fait <&--il?
Je suppose que c'est la même chose que< /dev/null
Ma prochaine compréhension est que les trois descripteurs de fichiers principaux ( stdin, stdout, stderr) doivent être fermées pour empêcher:
- Le travail est en arrière-plan et le script se termine - en conflit en quelque sorte?
- Lorsque le terminal se ferme, tous les processus qui acceptent stdin du terminal sont fermés?
ssh -nNT user@remote 'command'va créer une session SSH non interactive. Ajoutez-le &en arrière-plan, ajoutez-le nohupà commandpour le faire fonctionner si votre connexion est interrompue.
man sshsuggère que -N désactive entièrement l'exécution d'une commande à distance, et un test rapide le prend en charge.