草庐IT

使用 PTY.spawn 打开的 Ruby kill 虚拟 shell

在ruby​​脚本中,我启动了多个虚拟shell,每个都由一个shell管理器对象管理,如下所示:@shell=PTY.spawn'envPS1="\w>"TERM=dumbCOLUMNS=63LINES=21sh-i'在稍后的某个时间点,我想销毁这个实例并终止相关的shell进程。可悲的是,我无法正常工作。这是我尝试过的方法,按照工作的可能性排序:没有,也就是说,期望在管理对象被销毁时关闭shellproc。使用kill命令杀死shell上运行的所有进程(这有效),然后使用system("kill#{@shell[2]")杀死shell本身。这没有效果。在上面使用-9。这会使shel

Ruby - Expect 和 Pty 的问题

我正在尝试编写一个Ruby脚本,它将通过ssh连接到服务器,运行给定的命令,并从中获取输出。这是我目前所掌握的,大部分改编自ProgrammingRuby书:require'pty'require'expect'$expect_verbose=truePTY.spawn("sshroot@x.y")do|reader,writer,pid|reader.expect(/root@x.y'spassword:.*/)writer.puts("password")reader.expect(/.*/)writer.puts("ls-l")reader.expect(/.*/)answer=