【问题标题】:EC2 user-data not starting my applicationEC2 用户数据未启动我的应用程序
【发布时间】:2019-05-16 08:53:28
【问题描述】:

我正在使用 ec2 实例的用户数据来启动我的自动缩放实例并运行应用程序。我正在运行节点 js 应用程序。

但它不能正常工作。我已经调试并检查了实例云监视器输出。所以它说

pm2 command not found

经过大量阅读和调查,我发现以root身份执行命令的路径不存在。

作为 EC2 用户数据,它在尝试运行时会找到路径 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

ssh 作为 ec2-user 之后

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin

ssh 之后是sudo su

/root/.nvm/versions/node/v10.15.3/bin:/sbin:/bin:/usr/sbin:/usr/bin

它仅适用于最后一条路径。

那么在启动用户数据提供的实例期间,以 root 身份运行命令的方式或脚本是什么?

【问题讨论】:

    标签: bash amazon-web-services shell amazon-ec2 user-data


    【解决方案1】:

    不建议使用用户数据启动您的应用程序,因为根据 AWS 文档,他们不能保证只有在成功执行用户数据后才会出现该实例。即使用户数据失败,它也会启动您的实例。

    对于您的问题,我假设如果您提供二进制文件的完整绝对路径,它将起作用。

    /root/.nvm/versions/node/v10.15.3/bin/pm2

    此方法的更好解决方案,为您的应用程序启动创建一个服务文件并使用 systemd 或服务启动应用程序。

    【讨论】:

    • 当我尝试这样做时遇到了这个问题/usr/bin/env: node: No such file or directory
    猜你喜欢
    • 1970-01-01
    • 2018-08-02
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    相关资源
    最近更新 更多