为什么aws代码部署抛出“没有passwd条目的用户'ec2-user'”错误,尽管以root身份运行所有内容?
问题描述:
下面是错误信息:为什么aws代码部署抛出“没有passwd条目的用户'ec2-user'”错误,尽管以root身份运行所有内容?
以下是有关文件:
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
答
如果你已经成功地部署之前在该实例的SAM应用程序,该应用程序停止脚本实际上是从最后一次成功运行修订,你能检查上次成功修订中的应用程序停止脚本,它包含你所期望的一切吗?
如果ApplicationStop在最后一次成功修订版本中不正确,则可能需要设置--ignore-application-stop-failures选项。您
不起作用。请在回答之前尝试自己。 stop.sh脚本已经作为root用户触发,所以我猜这不需要你在每个命令前写sudo。 – ishandutta2007