サーバー側でJavaScriptを動かすnode.jsは、予期せぬexceptionが発生すると、簡単に停止してしまう。まぁ、これはJavaScriptだから仕方のないことなのだが、ライブラリなども発展途上のnode.jsを本番環境で使う人にとっては痛いところである。
そこで、Linuxなどで昔ながらの djb tools の一つであるdaemontoolsを使う人などがいるのだろうが、せっかくなのでnodeで稼働するforeverをつかってみる。
個人的にはdaemontoolsよりも状態把握がしやすいので、foreverをしばらく使おうと考えている。
そもそも何するものなの?
JavaScriptをはじめとしたスクリプト言語全般にいえることですが、サーバサイドで常駐稼働させると、何かの拍子に停止して落ちてしまうことがしばしばあります。
そんなとき、落ちてしまったときに自動的に立ち上げ直してくれるのが今回紹介するツールです。
foreverをインストール
$ npm install forever -g
オプションで、-gをつけてあげて、グローバルモジュールとしてインストールしましょう。
forever経由で立ち上げる
常駐稼働させるスクリプトをforever経由で立ち上げましょう
$ forever start ./twitter_bot.js
このように、startを与えたあとに、後ろにスクリプトファイルを渡してあげれば、何個でもforeverが管理して常駐稼働してくれる。
状態を把握
$ forever list
現在、forever経由で稼働しているスクリプトを表示してくれる。
node以外のスクリプトも稼働させられる
僕はnodeでのJavaScriptとRubyのスクリプトをforever経由で常駐稼働(デーモン)として稼働させてます。
$ forever -c ruby start ./twitter_bot.rb
こんな感じで、コマンドを指定してあげれば、あらゆるスクリプトを常駐稼働させられます。
その他の詳細は、こちらをご覧いただければ、すぐ使えるぐらい簡単です。