Jak mogę użyć ssh, aby uruchomić polecenie na komputerze z systemem Unix i wyjść, zanim polecenie zostanie wykonane?
Na przykład, jeśli piszę
ssh localhost 'sleep 60 &'
ssh wisi na moim terminalu, dopóki sen się nie skończy, nawet jeśli sen jest uruchamiany w tle.
&
poza cytatami.Odpowiedzi:
SSH ma przełącznik -f, który działa dokładnie tak samo, jak używanie nohup na twoim kliencie, ale umożliwia, że ssh prosi o hasło. Użyj tego w ten sposób:
Ale : SSH nadal będzie działał w tle, więc jeśli zamkniesz klienta przed zakończeniem polecenia na serwerze, zostanie on przerwany. Jeśli chcesz, aby połączenie ssh zostało zamknięte po wykonaniu polecenia, możesz użyć screen po stronie serwera:
źródło
Użyj przekierowania nohup, stdout / stderr i uruchom polecenie w tle:
EDYCJA: Lub jeszcze lepiej, po prostu użyj parametru -f ssh:
źródło
&>/dev/null
.Lub po zalogowaniu się przy użyciu
ssh
, zacznij,screen
jeśli chcesz wrócić później, aby sprawdzić postęp lub wyniki.źródło