Hubot
systemd

hubot デーモン化に使った forever を systemd でOSが再起動しても forever できるようにした

この前の記事で、hubotでslack botを作りました。

Host OSを再起動すると当然立ち上がってこないので、
今のうちに設定しておきたいなーと思った次第。

作っててスクリプトの更新をするためにはbotを再起動しないといけないわけで、何かいい方法はないかなーと思ったらスクリプトはgit管理、slackからメッセージを受け取って再起動するっていう仕組み作ったよ、 forever っていうツールとセットで使ってねっていうdistを見つけました。
Hubotの自動更新用スクリプト。 foreverの自動起動機能を利用して利用する想定。 $ /path/to/hubot/bin/bot start

[2018 6/6追記]
ちなみにこの記事を公開いたあと、
「デーモン化したいだけならsystemdでできるよ」と教えていただいたので
hubotをデーモン化するだけならsystemdだけでよかった - Qiita
という記事を公開しました。

hubotをforeverから起動する

それではまず、forever を使って hubot がデーモンとして起動できることを確認します。
foreverがまだインストールされていなければ、 sudo npm install -g forever でインストールしましょう。

# hubotのディレクトリに移動しておくこと
forever start -c sh bin/hubot -a slack # 起動
forever list # forever がデーモン化しているプロセスの一覧を確認
forever stop bin/hubot # デーモン化を止める
forever list # そして誰もいなくなった 

ちなみに forever の -c オプションは起動する実行ファイルを指定するもので、省略すると nodeを使って起動することになります。