使用Ruby作为宿主语言,为什么以下工作:
pid = Process.spawn("sudo", "ls", "-lah")
Process.wait2 pid
但这没有输出?
pid = Process.spawn("sudo", "ls", "-lah", pgroup: true)
Process.wait2 pid
答案 0 :(得分:1)
事实证明,终端只能有一个前台进程组,可以读取输入和写入输出,并处理信号。为了完成上述工作,您需要将其设置为前台进程组:
pid = Process.spawn("sudo", "ls", "-lah", pgroup: true)
Termios.setpgrp($stdin, pid)
Process.wait2 pid