デーモン化はforeverでしてるんですが、サーバーを再起動したときに自動的にスタートさせるにはどうするかについて記載します。

普段はExpressを使ってるので、app.js を起動させるのではなく、binディレクトリ配下の起動スクリプトを起動させる必要があります。

デーモン管理ツールなんかもあるんですが、インストールしたり、設定したりも大変やなぁなんて思ってたなかで、目からウロコ的なやり方が!

crontabを使います!

これだけで、あ〜あの方法使うんやなぁ!なんて思われる方もですが、ここはそのあたりは気にせずwww

“@reboot” を使います。

@hourlyとかは知ってたんですが、 @rebootは知りませんでしたorz

早い話が

$crontab -e

@reboot 〜

ってやるだけです!

具体的には?

当初

@reboot /usr/bin/forever start /hoge/sapp/bin/www

ってやったのですが、何かが見つからないとか出てきたので、シェルを組んでいます。

$vi start.sh

#!/usr/bin/bash

cd /hoge/sapp

/usr/bin/forever start bin/www

ってやって、

$ crontab -e

@reboot /hoge/start.sh

ってやっています。

というか、これだけです(^^)

ここにハマりましたorz

これで、動かない環境が出てきました。

async function main() {

}

てやってると

「functionが定義できない」ってメッセージが。。

$node -v でバージョンを確認すると 10.12.0 ってなってるんで、定義できないはずはない。。

で、よくよくみると。。。

バージョン管理のツールが入っています。。「n」ってやつ。。

#node -v ってやると。。

6.xx.xx

どうやら起動は、こちらの方を見ているようです。。

なるほどねぇ。。。