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

标签 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

最佳答案

原来一个终端只能有一个前台进程组,可以读输入写输出,处理信号。为了使上面的工作正常,你需要将它设置为前台进程组:

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

关于linux - 为什么 sudo 在进程组内生成时不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40969920/

相关文章:

java - 无论底层操作系统如何,都从 Java 执行进程

python - 学习 UNIX/Linux 哪个平台更好(Kali Linux 与 Red Hat 或其他)

linux - Tcl 脚本中的字符串格式化

shell - 是否有可以跨Internet连接工作的类UNIX集群操作系统?

arrays - 如何创建键 :array in shell? 的映射

Java - 在什么情况下 JVM 可能会突然崩溃?

linux - 进程数是否受 RAM 大小的限制?

python - 启动 rq-worker 时如何修复 'Error 111 connecting to localhost:6379. Connection refused'?

linux - Apache httpd 请求/响应日志记录

linux - 在 .desktop 文件中启用多尺寸图标支持