我使用EventMachine在Ruby中编写了一个简单的UDP服务器。我想让它始终在我的Linux机器上运行。关于如何将其作为系统服务包装或以启动时启动,保持运行的其他形式的建议可以被监控?
答案 0 :(得分:2)
当你在Linux上时,你可以使用守护进程 gem
答案 1 :(得分:1)
基于EventMachine构建的Thin网络服务器使用daemons gem:https://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
即可。