rpb*_*ear 5 linux fork signals exec go
我在golang中发现了一个奇怪的问题.exec.Start()如果父程序被信号os.Interrupt中断,则执行的程序将退出,而如果父程序正常退出则子程序不会退出.这两个条件之间有什么区别?举些例子:
package main
import "fmt"
import "os"
import "time"
import "os/exec"
func main(){
cmd := exec.Command("sleep", "100000")
cmd.Env = os.Environ()
fmt.Println(cmd.Env)
cmd.Start()
time.Sleep(1e9*20)
return
}
Run Code Online (Sandbox Code Playgroud)
在后一种情况下,如果我们不中断主程序,则父级sleep 100000将是20 init process后.
| 归档时间: |
|
| 查看次数: |
1475 次 |
| 最近记录: |