2013-09-02 2 views
4

Я бегу ssh somehost "service XXX restart" и оболочка висит.ssh удаленная команда не возвращается

Служба nodeJS и я вижу express is listening on port ... Печать Я сделал в server.js и все, он не возвращается к подсказке, он просто висит.

Я пробовал nohup и &, но это не поможет. Что еще я могу попробовать?

ответ

6

получается, что используя -t решает проблему.

ssh -t [email protected] "service XXX restart" не висит.

другие предложения из комментариев, которые могли бы решить эту проблему:

  • node myScript.js & disown
  • exec node myScript.js &
+0

Это также завершает процесс бэкэнд, что на самом деле висит вашу команду. –

+0

@AlanDuan Я использовал это на веб-сервисе в течение многих лет. На самом деле все еще использую его .. и он отлично работает. –

+1

Будущим читателям может понадобиться попробовать «узел myScript.js & disown» или «exec node myScript.js &», чтобы отделить себя от текущего процесса. Подробнее [здесь] (https://askubuntu.com/questions/106351/running-programs-in-the-background-from-terminal). – haxpor

0

Использование ssh -t не висит, но это слишком расторгает удаленный процесс.

То, что работает для меня, чтобы просто запустить удаленный процесс в фоновом режиме, как показано ниже:

ssh somehost /path/to/some/script augment1 augment2 & 
Смежные вопросы