因此,我要使用下面的User Data启动一个AWS EC2 [Bitnami NodeJs映像,下面的链接]实例,以便它自动在端口3000上建立并托管一个网站。该用户数据仅得到部分执行/ hbfl目录已创建,同时还下载了所需的存储库,但服务器尚未启动。如果我使用ssh并运行后两个命令,则该网站已启动并正在运行[通过从另一台设备转到公共IP进行了测试]。我还通过创建一个没有用户数据的实例并将此脚本放入.sh文件并在主目录中执行来进行检查,即使该方法可行。因此,看来这至少与步骤无关,也许是有权限的事情。
#!/bin/bash
sudo apt-get update
sudo apt-get -y install git
git clone https://github.com/vndn/hbfl.git
cd hbfl
sudo npm i
sudo npm run start
Note- AMI URL- https://aws.amazon.com/marketplace/pp/B00NNZUAKO?ref=cns_1clkP ro
答案 0 :(得分:0)
您可以尝试将命令运行到特定用户的目录而不是根目录吗? (例如cd / home / ubuntu)
还可以使用不带sudo的npm run start。
第二,我在这里看到的主要问题是:npm run start不会在后台运行节点应用程序。您可能需要使用nohup或pm2(流程管理器2)之类的东西来解决此问题。