在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