【发布时间】:2013-08-13 20:08:25
【问题描述】:
在 Ruby 中,当我的主进程退出或被杀死时,如何确保从我的程序生成的子进程不会继续运行?
最初我以为我可以在主进程中使用at_exit,但如果我的主进程得到kill -9ed 或调用Kernel.exec,这将不起作用。我需要一个(基本上)万无一失且跨平台的解决方案。
【问题讨论】:
-
你是如何启动有问题的子进程的?例如,它是一个
Open4.open4块吗? -
请注意,如果您的主进程是
kill -9ed,那么您在代码中几乎无能为力。运行kill 9的人已经决定,整理是他们的问题。 -
@NeilSlater 我正在使用一个库 (childprocess),它根据平台使用不同的方法来启动子进程。
标签: ruby ruby-1.9 ruby-1.9.3