Skopiowałem fragment Basha do tła polecenia ssh wykonanego zdalnie:
ssh user@remote <<CMD
some process <&- >log 2>error &
CMD
Co ma <&-
zrobić?
Domyślam się, że to to samo co< /dev/null
Mój następny zrozumienie jest, że trzy główne deskryptory plików ( stdin
, stdout
, stderr
) muszą być zamknięte, aby zapobiec:
- Zadanie jest w tle, a skrypt kończy się - jakoś sprzeczny?
- Kiedy terminal się zamyka, wszystkie procesy akceptujące standardowe wejście z terminala są zamykane?
ssh -nNT user@remote 'command'
utworzę nieinteraktywną sesję SSH. Dołącz &
do tła, dołącz nohup
do, command
aby utrzymać działanie, jeśli połączenie zostanie przerwane.
man ssh
sugeruje, że -N wyłącza całkowicie uruchomienie komendy zdalnej, a szybki test to obsługuje.