我使用EventMachine在Ruby中编写了一个简单的UDP服务器。我希望将其作为系统服务在我的Linux机器上始终运行。有什么建议可以将其包装成系统服务或以其他形式启动,保持运行并可以监视?
我使用EventMachine在Ruby中编写了一个简单的UDP服务器。我希望将其作为系统服务在我的Linux机器上始终运行。有什么建议可以将其包装成系统服务或以其他形式启动,保持运行并可以监视?
Thin Web服务器是建立在EventMachine之上的,使用daemons gem:https://github.com/macournoyer/thin/blob/master/lib/thin/daemonizing.rb
为了保持其运行,可以使用Monit,它可以配置检查进程是否正在运行,如果没有则重新启动它,或者在使用过多系统资源或其他可能的条件下重新启动。
所有这些答案都已经过时了。Ruby有完美的Process.daemon
方法:http://www.ruby-doc.org/core-2.1.0/Process.html#method-c-daemon
在你的应用程序中,在EM.run
之前添加Process.daemon
,一切都应该正常工作。