我有一个EC2实例,我想编写一个脚本(以前从未完成过),这样每次我在AWS控制台中启动我的E2实例时,都会自动运行以下文件。
假设我有一个名为example.js
的文件,其中包含以下内容:
var test(){
console.log('hello world');
}
test()
然后我有一个名为example2.js
每次运行我的EC2实例时,我都需要ssh进入它并执行node example.js
和node example2.js
以运行这些功能。
但是,我想编写一个启动脚本,以便在EC2实例状态转为运行(即在线)时,我希望自己执行命令node example.js
和node example2.js
。
这可能吗?如果是,我在哪里放这个脚本?
我在我的EC2实例上运行了Centos图像,并且EC2实例在晚上关闭,并在早上重新开启 - 因此脚本将简化操作!
我读了这个链接,但在我的案例中无法弄清楚:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html
任何帮助将不胜感激。谢谢
答案 0 :(得分:1)
使用pm2。它是管理节点流程的绝佳解决方案。也可以在启动机器时启动进程。
参考:http://pm2.keymetrics.io/docs/usage/startup/
这是另一个很好的教程:https://futurestud.io/tutorials/pm2-restart-processes-after-system-reboot
答案 1 :(得分:0)
特定于EC2,您可以使用'用户数据'选项,在您创建实例时可用。它需要一个脚本作为输入,将在启动时执行。
以下是它的样子:
要将用户数据添加到您的实例,请等到深夜,这样您就不会破坏您的应用,然后右键单击它并执行“#34;创建图像"”。
创建图像后,您可以使用它来生成一个" new"实例,使用用户数据,删除旧数据而不丢失任何内容。不要忘记重新分配旧实例的弹性IP:)