Mam ten interesujący problem, w którym chciałbym uruchomić to polecenie
nc -l 8023 | zfs receive tank3/pro1
na zdalnym hoście 10.10.10.11
.
Jeśli ucieknę
ssh -n 10.10.10.11 'nohup nc -l 8023 | zfs receive tank3/pro1 &'
od wewnątrz skryptu, to nie jest kontynuowane w skrypcie, ponieważ zfs
czeka na STDIN.
Jeśli przekieruję STDIN, STDOUT, STDERR
ssh -n 10.10.10.11 'nohup nc -l 8023 | zfs receive tank3/pro1 &> /dev/null < /dev/null &'
następnie skrypt kontynuuje, ale przekierowanie STDIN niszczy zfs
polecenie.
Pytanie
Czy screen
można to rozwiązać?
Lub inne pomysły?
tail
się na zdalnym hoście na ekranie, ale nie daje mi powłoki z powrotem na hoście lokalnym, więc mój skrypt może kontynuować.tail -f
że nie wychodzi; podąża za plikiem na zawsze, dopóki go jawnie nie zabijesz.Nie mam ZFS, ale stworzyłem prosty skrypt naśladujący czytanie standardowego. Wydaje się dla mnie pracować
~ / sand / readme.sh:
I wtedy:
Lub z pojedynczymi cytatami:
\
oddziela wiele zdalnych poleceń ssh, a przynajmniej wydaje mi się, że tak się zachowuje :).disown
pozwoli ci oderwać się od pracy w tle. Używam tego za każdym razem, gdy uruchamiam długie polecenie i zdaję sobie sprawę dopiero po tym, jak powinienem to zrobić na ekranie.CTRL+Z; bg; disown
jeśli kiedykolwiek znajdziecie się w takim scenariuszu. Możesz wylogować się z SSH i będzie on nadal działał w tle.źródło
zfs
jakiegoś powodu nie.Możesz w tym celu użyć screena,
-d -m
aby uruchomić w trybie odłączonym:źródło