If I run a command like this, using ruby’s pty class, how do I kill it if I find a certain input string?
cmd = "appcfg.py update cdn"
PTY.spawn("#{cmd} 2>&1") do | input, output, pid |
begin
input.expect("Email:") do
output.write("#{credentials[:username]}\n")
end
input.expect("Password:") do
output.write("#{credentials[:password]}\n")
end
if input.gets == "SOMETHING"
EXIT!
end
rescue Exception => e
puts "GAE Error..."
end
end
What is the right way to do that?
What about something like this?
This is ofcourse if you run ruby1.9 (and it will kill ALL ruby1.9 processes! (so if you are running some other ruby prog on your server or something you will have to do some if statement to check which process it is.