【发布时间】:2013-12-06 08:18:57
【问题描述】:
让我在这里介绍一个小背景:
我正在使用 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)通过生成函数,如“sh -c ruby actual_script.rb > /dev/null” 3)通过“ruby actual_script.rb”
现在我的问题是,如果我的 actual_script.rb 占用了 RAM 中的大量内存,那么上述哪个进程将被内核杀死。
实际问题在这里 Process::Status Object 正在存储 spawned_process_id (进程号 2)的状态,但如果内核正在杀死进程号 3,那么我的逻辑给出了成功,这绝对是一个错误的情况。
任何解决方案或参考都会有所帮助。
【问题讨论】:
标签: php ruby-on-rails ruby linux process