在EC2的cron定时任务中,重新启动时启动nodejs forever

因为从未设定密码就调用,所以信息很少且常常搞得一团糟,让人摸不着头脑。

操作系统:亚马逊Linux 2(2017.12)长期支持候选发行版

确认安装位置

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;

全局的的包也可以从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