gpt4 book ai didi

ruby - 用子进程杀死 ruby 中的 fork 进程

转载 作者:数据小太阳 更新时间:2023-10-29 07:54:59 42 4
gpt4 key购买 nike

以下代码 fork 主进程并在反引号中运行命令。脚本末尾的 kill 只会杀死 fork 进程,但不会杀死它的子进程(即 sleep 命令)。

pid = fork do
Thread.new do
`sleep 20`
end
end
sleep(1)
Process.kill("HUP",pid)

除了搜索进程树之外,是否有办法杀死所有子进程(由 fork 进程中的线程中的反引号命令生成)?

最佳答案

Behind the scene both system and backtick operations use fork to fork the current process and then they execute the given operation using exec .

Since exec replaces the current process it does not return anything if the operation is a success. If the operation fails then `SystemCallError is raised.

http://blog.bigbinary.com/2012/10/18/backtick-system-exec-in-ruby.html

关于ruby - 用子进程杀死 ruby 中的 fork 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44260475/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com