Edited at

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

More than 1 year has passed since last update.

この前の記事で、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を使って起動することになります。