将Ruby / EventMachine脚本作为系统服务运行

时间:2010-12-24 02:51:55

标签: ruby service eventmachine

我使用EventMachine在Ruby中编写了一个简单的UDP服务器。我想让它始终在我的Linux机器上运行。关于如何将其作为系统服务包装或以启动时启动,保持运行的其他形式的建议可以被监控?

4 个答案:

答案 0 :(得分:2)

当你在Linux上时,你可以使用守护进程 gem

http://daemons.rubyforge.org/

http://railscasts.com/episodes/129-custom-daemon

答案 1 :(得分:1)

基于EventMachine构建的Thin网络服务器使用daemons gemhttps://github.com/macournoyer/thin/blob/master/lib/thin/daemonizing.rb

要使其保持运行,请使用Monit,可以将其配置为检查进程是否正在运行,如果不是则重新启动,或者如果启动使用过多的系统资源,则重新启动,或者使用其他无穷无尽的数组可能的条件。

答案 2 :(得分:0)

我会在[@restart] [1]中使用Cron。一个表现良好的守护进程应该在再次运行之前检查它是否已经运行。

[1]:https://help.ubuntu.com/community/CronHowto#Advanced Crontab

答案 3 :(得分:0)

所有这些答案都已过时。 Ruby拥有完美的Process.daemon方法:http://www.ruby-doc.org/core-2.1.0/Process.html#method-c-daemon

只需在Process.daemon之前在您的应用中添加EM.run即可。