デーモン化してるHubotが何故か勝手に落ちてしまう。
Slackと連携させているHubotが何故か勝手に落ちてしまうので、調べてみたのでメモ。
どういうこと?
VPS上にHubotを設置して、Slackと連携させて遊んでました。 デーモン化にはforeverを使っていました。
毎日定期的につぶやいたり、backlogの変更をSlackに通知してくれたり、便利に使っていたのですが、ある日をさかいに勝手に落ちてしまうようになりました。
最初は普通に再起動していたのですが、頻繁に再現するので、調べてみました。
foreverのログを見てみる
$ forever logs info: Logs for running Forever processes data: script logfile data: [0] node_modules/.bin/hubot /home/www/.forever/YABZ.log $ cat /home/www/.forever/YABZ.log [Wed Oct 19 2016 11:19:00 GMT+0900 (JST)] ERROR TypeError: Cannot read property 'name' of undefined at Request.callback (/home/www/hubot/node_modules/superagent/lib/node/index.js:619:12) at /home/www/hubot/node_modules/superagent/lib/node/index.js:795:18 at IncomingMessage.<anonymous> (/home/www/hubot/node_modules/superagent/lib/node/parsers/json.js:16:7) at emitNone (events.js:72:20) at IncomingMessage.emit (events.js:166:7) at endReadableNT (_stream_readable.js:921:12) at nextTickCallbackWith2Args (node.js:442:9) at process._tickCallback (node.js:356:17) error: Forever detected script was killed by signal: SIGKILL
killされちゃってるみたいですね。。。
ググッてみる
ググッてみると同じような症状の人がいるみたい。
error: Forever detected script was killed by signal: SIGKILL - Google 検索
んで、見ていくと、以下のStack Overflowが見つかりました。
なんでも .foreverignore
を作れば治るよ。ということなので、早速作ってみた。
$ cd /home/hubot/ $ ls -al drwxrwxr-x 5 www www 4096 10月 24 11:01 2016 . drwx------ 8 www www 4096 10月 24 11:58 2016 .. -rw-r--r-- 1 www www 39 5月 20 06:45 2016 .gitignore -rw-rw-r-- 1 www www 11 9月 2 12:21 2016 .hubot_history -rw-r--r-- 1 www www 24 9月 2 12:16 2016 Procfile -rw-r--r-- 1 www www 7820 9月 2 12:16 2016 README.md drwxrwxr-x 2 www www 4096 9月 23 18:24 2016 bin -rw-rw-r-- 1 www www 186 9月 21 18:05 2016 external-scripts.json drwxrwxr-x 190 www www 4096 10月 24 11:45 2016 node_modules -rw-rw-r-- 1 www www 677 9月 25 21:37 2016 package.json drwxrwxr-x 2 www www 4096 10月 24 11:58 2016 scripts $ touch .foreverignore $ ls -al drwxrwxr-x 5 www www 4096 10月 24 11:01 2016 . drwx------ 8 www www 4096 10月 24 11:58 2016 .. -rw-rw-r-- 1 www www 0 10月 24 11:01 2016 .foreverignore <= 追加されてる -rw-r--r-- 1 www www 39 5月 20 06:45 2016 .gitignore -rw-rw-r-- 1 www www 11 9月 2 12:21 2016 .hubot_history -rw-r--r-- 1 www www 24 9月 2 12:16 2016 Procfile -rw-r--r-- 1 www www 7820 9月 2 12:16 2016 README.md drwxrwxr-x 2 www www 4096 9月 23 18:24 2016 bin -rw-rw-r-- 1 www www 186 9月 21 18:05 2016 external-scripts.json drwxrwxr-x 190 www www 4096 10月 24 11:45 2016 node_modules -rw-rw-r-- 1 www www 677 9月 25 21:37 2016 package.json drwxrwxr-x 2 www www 4096 10月 24 11:58 2016 scripts
まだ追加して1日だけど、logで吐いてたエラーも出てないようだし、うまくいってるっぽい。
これでうまくいくといいけどなぁ。。