Próbuję uruchomić oprogramowanie przez ssh:
Potrafię :
ssh -t [email protected]
screen -S datanode -d -m ~/hadoop/bin/hdfs datanode
Ale
ssh -t [email protected] screen -S datanode -d -m ~/hadoop/bin/hdfs datanode
Nie działa
Wypróbowałem kilka opcji z cytatami:
ssh -t [email protected] screen '-S datanode -d -m ~/hadoop/bin/hdfs datanode'
lub
ssh -t [email protected] screen -S datanode -d -m '~/hadoop/bin/hdfs datanode'
lub
ssh -t [email protected] screen ' -S datanode -d -m ~/hadoop/bin/hdfs datanode'
ale nie mogę znaleźć właściwego :-(
ssh
gnu-screen
Romain Jouin
źródło
źródło
~
nie jest ono rozwijane lokalnie. Powiązane pytanie: superuser.com/questions/1171397/…Odpowiedzi:
Lepiej pogrupować opcje razem
Następnie możesz ponownie podłączyć
Pamiętaj tylko, że po
command
wyjściu nie będzie to ekran, który można ponownie podłączyć . Na przykład:Otrzymasz
wall
wiadomość ..... ale ekran zostanie natychmiast zamknięty po pomyślnym uruchomieniu polecenia
źródło
-dmS NAME
, ale nadal nie odpowiada na problem podniesiony przez pytającego.Widzę dwa (potencjalne) problemy z twoją inkantacją
ssh
) to jeden rozszerza~
i zastąpienie wartości$HOME
, która może być różna od zdalnego serwera. Zaproponuj użycie ścieżki względnej (np../hadoop/bin/hdfs
) Lub ścieżki w pełni kwalifikowanej lub zacytowanie polecenia zdalnego pojedynczymi cudzysłowami (np. „~ / Hadoop / bin / hdfs datanode”), aby zapobiec ekspansji na kliencie.screen
polecenie uruchamia odłączoną instancję, ale nadal jest procesem potomnym powłoki uruchomionej przez ssh, jest przerywane po wyjściu powłoki zdalnej.Co więcej, ponieważ screen tworzy własne tty, nie potrzebujesz takiej
-t
opcjissh
.Spróbuj zamiast tego użyć
-f
polecenia,ssh
aby przejść w tło tuż przed wykonaniem polecenia. to znaczy:Równie ważna alternatywa przy użyciu
nohup
:źródło