Ich habe einen Ausschnitt von Bash in den Hintergrund eines aus der Ferne ausgeführten ssh-Befehls kopiert:
ssh user@remote <<CMD
some process <&- >log 2>error &
CMD
Was macht <&-das?
Ich vermute, es ist dasselbe wie< /dev/null
Mein nächstes Verständnis ist , dass die drei wichtigsten Datei - Deskriptoren ( stdin, stdout, stderr) müssen geschlossen werden , um zu verhindern:
- Der Hintergrund des Jobs und das Beenden des Drehbuchs - irgendwie widersprüchlich?
- Wenn das Terminal geschlossen wird, werden alle Prozesse, die stdin vom Terminal akzeptieren, geschlossen?
ssh -nNT user@remote 'command'wird eine nicht interaktive SSH-Sitzung erstellt. Hänge es &an den Hintergrund an, bevor du es nohupan das anfügst , commandum es am Laufen zu halten, wenn deine Verbindung unterbrochen wird.
man sshschlägt vor, dass -N die Ausführung eines Remotebefehls vollständig deaktiviert, und ein schneller Test unterstützt dies.