Node.js
EC2
forever

EC2 cronでreboot時にnodejs foreverを起動する

パスが通ってない状態から呼び出すので
なぜか情報も少ないしいつもよくわかんなくなってごちゃごちゃします。

OS : Amazon Linux release 2 (2017.12) LTS Release Candidate

インストール場所を確認する

whereis git
git: /usr/bin/git /usr/share/man/man1/git.1.gz

whereis node
node: /home/ec2-user/.nvm/versions/node/v8.9.4/bin/node

whereis gulp
gulp: /home/ec2-user/.nvm/versions/node/v8.9.4/bin/gulp

whereis forever
forever: /home/ec2-user/.nvm/versions/node/v8.9.4/bin/forever

gitからコードを持ってくる

cd /home/ec2-user/someApp/;
/usr/bin/git pull;

globalのパッケージもnodeから呼び出す。これ大事

/home/ec2-user/.nvm/versions/node/v8.9.4/bin/node /home/ec2-user/.nvm/versions/node/v8.9.4/bin/gulp build;
/home/ec2-user/.nvm/versions/node/v8.9.4/bin/node /home/ec2-user/.nvm/versions/node/v8.9.4/bin/forever start /home/ec2-user/someApp/dist/child.js;

babel使ってるのでgulp buildが入り実行がsomeApp/dist/child.jsになってます。

start.shとかに書いてcronから実行

crontab -e
@reboot /home/ec2-user/start.sh