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 nohup
an das anfügst , command
um es am Laufen zu halten, wenn deine Verbindung unterbrochen wird.
man ssh
schlägt vor, dass -N die Ausführung eines Remotebefehls vollständig deaktiviert, und ein schneller Test unterstützt dies.