Я пытаюсь подключиться к удаленному серверу SSH через ruby, используя
Net :: SSH. Работает нормально для всех команд, предоставляемых через
сценарий, и я мог прочитать вывод команды
успешно. Но когда я использую приведенную ниже команду, она застревает в
SSH.exec! (Cmd) и управление не возвращается с линии. Только если я
нажмите Ctrl + C в командной строке, сценарий заканчивается. Команда
is ./wcsadmin.sh start -> используется для запуска процессов моего
приложение на удаленном сервере
Пожалуйста, найдите приведенный ниже фрагмент кода моего скрипта ruby:
Net::SSH.start(host, username, :password => password) do |ssh|
puts 'before exit'
output = ssh.exec!(/opt/wcsadmin.sh start)
puts 'Executed command'
Вывод команды, когда я делаю это вручную:
[root @ test bin] # ./wcsadmin.sh start
Запуск системы управления сетью ...
Это может занять несколько минут ... stty: стандартный ввод: неверный аргумент
Система управления сетью успешно запущена.
Запуск демона SAM ... Готово. Запуск демона DA ... Запуск системного журнала DA
демон ... начало
если я использую ssh.exec ('./ wcsadmin.sh start'), единственная разница заключается в
вышеприведенный вывод печатается, но программа никогда не заканчивается.
нужно вручную завершить его, нажав Ctrl + C. Когда я искал в Google, я
мог найти вы можете использовать
команда nohup ('nohup /opt/wcsadmin.sh start> /tmp/teststartserver.log 2> & 1')
чтобы пропустить сигналы зависания и попытался сделать то же самое. Это также записывает вывод в teststartserver.log, но
быть повешенным. Может кто-нибудь помочь мне в этом вопросе?
Заранее спасибо!
Спасибо, Мина