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 nohupa commandper mantenerlo in esecuzione se la connessione si interrompe.
man sshsuggerisce che -N disabilita completamente l'esecuzione di un comando remoto e un test rapido lo supporta.