2016-04-24 7 views
2

Если я запускаю длинную команду, такую ​​как дамп базы данных, используя exec, как бы я хотел отменить эту команду на удаленном хосте, если, например, пользователь начните мишить Control-C, чтобы убить скрипт.Как отменить длинную команду Ruby Net :: SSH

В моем тестировании кажется, что даже если вы Control-C и убиваете приложение, удаленная команда продолжает работать.

ответ

0

Захват SIGINT и SystemExit и очистки:

rescue SystemExit, Interrupt 
    # clean up 
    # net-ssh execute a kill on the pid 
    # raise error 
end 
+1

Не будет ли это просто убить процесс Ruby, а не процесс, запущенное на удаленном хосте? Я думаю, вы могли бы заменить Process.kill любой удаленной командой, которая убьет этот процесс. Также вы хотите поднять ошибку после ее спасения, не так ли? –

+0

Спасибо, @keithrbennett, пример кода, отредактированный на основе ваших предложений. –

 Смежные вопросы

  • Нет связанных вопросов^_^