为什么aws代码部署抛出“没有passwd条目的用户'ec2-user'”错误,尽管以root身份运行所有内容?

问题描述:

下面是错误信息:为什么aws代码部署抛出“没有passwd条目的用户'ec2-user'”错误,尽管以root身份运行所有内容?

enter image description here enter image description here

以下是有关文件:

stop.sh

#!/bin/bash 
pkill -f node 

appspec.yml

version: 0.0 
os: linux 
files: 
    - source:/
    destination: /var/www/ 
permissions: 
    - object: /var/www/ 
    owner: root 
    mode: 777 
hooks: 
    BeforeInstall: 
    - location: scripts/install.sh 
     timeout: 300 
     runas: root 
    AfterInstall: 
    - location: scripts/post_install.sh 
     timeout: 300 
     runas: root 
    ApplicationStart: 
    - location: scripts/run.sh 
     timeout: 300 
     runas: root 
    ApplicationStop: 
    - location: scripts/stop.sh 
     timeout: 300 
     runas: root 
    ValidateService: 
    - location: scripts/validate.sh 
     timeout: 300 
     runas: root 

下面是OS细节:

[email protected]:~$ lsb_release -a 
No LSB modules are available. 
Distributor ID: Ubuntu 
Description: Ubuntu 14.04.1 LTS 
Release: 14.04 
Codename: trusty 

我试图运行的所有钩子EC2用户“的ubuntu”为好,结果是相同的。

ec2-user只是默认实例用户。在所有的Linux,你不能没有第一期执行任意系统命令sudo

修复:

#!/bin/bash 
sudo pkill -f node 
+0

不起作用。请在回答之前尝试自己。 stop.sh脚本已经作为root用户触发,所以我猜这不需要你在每个命令前写sudo。 – ishandutta2007

如果你已经成功地部署之前在该实例的SAM应用程序,该应用程序停止脚本实际上是从最后一次成功运行修订,你能检查上次成功修订中的应用程序停止脚本,它包含你所期望的一切吗?

如果ApplicationStop在最后一次成功修订版本中不正确,则可能需要设置--ignore-application-stop-failures选项。您