为什么sudo在进程组中生成时不起作用?

时间:2016-12-05 08:23:46

标签: linux unix process sudo spawn

使用Ruby作为宿主语言,为什么以下工作:

pid = Process.spawn("sudo", "ls", "-lah")
Process.wait2 pid

但这没有输出?

pid = Process.spawn("sudo", "ls", "-lah", pgroup: true)
Process.wait2 pid

1 个答案:

答案 0 :(得分:1)

事实证明,终端只能有一个前台进程组,可以读取输入和写入输出,并处理信号。为了完成上述工作,您需要将其设置为前台进程组:

pid = Process.spawn("sudo", "ls", "-lah", pgroup: true)
Termios.setpgrp($stdin, pid)
Process.wait2 pid