3

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

4

4 回答 4

2

当你在 linux 上时,你可以使用daemons gem

http://daemons.rubyforge.org/

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

于 2010-12-24T09:44:56.633 回答
1

建立在 EventMachine 之上的瘦网络服务器使用守护进程 gemhttps ://github.com/macournoyer/thin/blob/master/lib/thin/daemonizing.rb

为了让它保持运行,请使用Monit,它可以配置为检查进程是否正在运行,如果没有,则重新启动它,或者如果它开始使用过多的系统资源或其他可能的情况,则重新启动。

于 2010-12-24T10:44:47.100 回答
0

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

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

于 2010-12-24T06:01:15.703 回答
0

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

只需Process.daemon在您的应用程序之前添加EM.run,一切都应该工作。

于 2014-03-25T17:44:28.157 回答