Ho copiato uno snippet di Bash in background un comando ssh eseguito in remoto:
ssh user@remote <<CMD
some process <&- >log 2>error &
CMD
Cosa fa <&-
?
La mia ipotesi è che sia lo stesso di< /dev/null
Il mio prossimo comprensione è che i tre principali descrittori di file ( stdin
, stdout
, stderr
) devono essere chiusi per impedire:
- Il lavoro in background e la sceneggiatura in uscita - in qualche modo in conflitto?
- Quando il terminale si chiude, tutti i processi che accettano lo stdin dal terminale vengono chiusi?
ssh -nNT user@remote 'command'
creerò una sessione SSH non interattiva. Aggiungi &
in background, anteponi nohup
a command
per mantenerlo in esecuzione se la connessione si interrompe.
man ssh
suggerisce che -N disabilita completamente l'esecuzione di un comando remoto e un test rapido lo supporta.