EventMachine を使用して Ruby で単純な UDP サーバーを作成しました。Linuxボックスで常に実行したいと思います。システムサービスとして、または起動時に起動し、実行を維持し、監視できる他の形式でラップする方法に関する提案はありますか?
4 に答える
Linux を使用しているため、daemons gemを使用できます
EventMachine の上に構築された Thin Web サーバーは、デーモン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
Process.daemon
前にアプリケーションを追加するだけでEM.run
、すべてが機能するはずです。
[@restart][1] で Cron を使用します。正常に動作するデーモンは、再実行する前に既に実行されているかどうかを確認する必要があります。
[1]: https://help.ubuntu.com/community/CronHowto#Advanced Crontab