rub*_*iii 9 ruby process webrick
我正在尝试通过ruby为集成测试(实际规格)设置一个服务器,但无法弄清楚如何控制该过程.
所以,我想要做的是:
webrick不是必需的,但它包含在ruby标准库中,因此能够使用它会很棒.
希望有人能够提供帮助!
PS.我正在linux上运行,因此将此工作用于Windows并不是我的主要优先事项(现在).
Mic*_*ant 13
标准方法是使用系统函数fork(复制当前进程),exec(用可执行文件替换当前进程)和kill(向进程发送信号以终止它).
例如 :
pid = fork do
# this code is run in the child process
# you can do anything here, like changing current directory or reopening STDOUT
exec "/path/to/executable"
end
# this code is run in the parent process
# do your stuffs
# kill it (other signals than TERM may be used, depending on the program you want
# to kill. The signal KILL will always work but the process won't be allowed
# to cleanup anything)
Process.kill "TERM", pid
# you have to wait for its termination, otherwise it will become a zombie process
# (or you can use Process.detach)
Process.wait pid
Run Code Online (Sandbox Code Playgroud)
这适用于任何类Unix系统.Windows以不同的方式创建进程.