我有一個ruby腳本,我使用net/ssh將ssh插入服務器,sudo -s,su-user,運行腳本並回答該腳本的問題。到目前爲止,我可以做所有事情,登錄,執行所有su/sudo操作,運行腳本並回答問題,但我創建的渠道不會關閉並結束腳本。它全部運行,但在腳本運行後掛起。我究竟做錯了什麼?我是紅寶石小白,所以我不完全確定發生了什麼。謝謝你的幫助!Ruby net/ssh腳本不關閉
下面是我的本錢:
Net::SSH.start("server01", 'user') do |ssh|
ssh.open_channel do |channel|
channel.on_request "exit-status" do |channel, data|
$exit_status = data.read_long
end
channel.on_data do |channel, data|
data
end
channel.request_pty do |channel, data|
channel.send_data("sudo -s\n")
channel.send_data("su - user2\n")
sleep 0.5
channel.send_data("/opt/scripts/test\n")
sleep 10
channel.send_data("answer1\n")
sleep 5
channel.send_data("answer2\n")
sleep 5
channel.send_data("answer3\n")
sleep 10
end
channel.wait
puts "SUCCESS" if $exit_status == 0
end
end
不確定它爲什麼不關閉,但爲什麼不'sudo -u user2 -H/opt/scripts/test'?應該保存一些命令。你有沒有嘗試發出exit命令關閉shell? – Doon 2014-08-29 22:05:51