gpt4 book ai didi

php - 如果内存过度使用,哪个进程会被内核杀死? child 还是 parent ?

转载 作者:太空宇宙 更新时间:2023-11-04 04:07:54 24 4
gpt4 key购买 nike

让我在这里介绍一个小背景:

我正在使用 shell_exec 函数通过 PHP 启动一个 ruby​​ 脚本 (script_launcher.rb),在该 ruby​​ 脚本中我正在这样做:

spawned_process_id = spawn("ruby actual_script.rb > /dev/null" ) 
Process.wait spawned_process_id

之后,根据 Process::Status Object,我在 ruby​​ 脚本中进行响应。

这将在服务器上启动三个进程:1)通过“ruby script_launcher.rb”的PHP脚本2)通过spawn函数,例如“sh -c ruby​​ effective_script.rb >/dev/null”3)通过“rubyactual_script.rb”

现在我的问题是,如果我的actual_script.rb占用了RAM中的大量内存,那么上述哪个进程将被内核杀死。

实际的问题在这里 Process::Status 对象正在存储 spawned_process_id (进程号 2)的状态,但如果内核正在杀死进程号 3 那么我的逻辑会给出成功,这绝对是错误的情况。

任何解决方案或引用都会有帮助。

最佳答案

如果没有特殊配置,我认为linux不会自动终止进程。大多数情况下,当进程无法从系统获取更多内存时,它会自行终止(可能是通过不处理异常)。

关于php - 如果内存过度使用,哪个进程会被内核杀死? child 还是 parent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20419181/

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