【发布时间】:2022-01-27 05:25:45
【问题描述】:
我正在使用 Web 控制台启动 Amazon Linux 实例 (ami-fb8e9292),将数据粘贴到用户数据框中以在启动时运行脚本。如果我使用 example given by amazon 启动 Web 服务器,它就可以工作。但是当我运行自己的脚本(也是#!/bin/bash 脚本)时,它不会运行。
如果我查看var/log/cloud-init.log,它没有提供有关该主题的有用信息:
May 22 21:06:12 cloud-init[1286]: util.py[DEBUG]: Running command ['/var/lib/cloud/instance/scripts/part-001'] with allowed return codes [0] (shell=True, capture=False)
May 22 21:06:16 cloud-init[1286]: util.py[WARNING]: Failed running /var/lib/cloud/instance/scripts/part-001 [2]
May 22 21:06:16 cloud-init[1286]: util.py[DEBUG]: Failed running /var/lib/cloud/instance/scripts/part-001 [2]
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/cloudinit/util.py", line 637, in runparts
subp([exe_path], capture=False, shell=True)
File "/usr/lib/python2.6/site-packages/cloudinit/util.py", line 1528, in subp
cmd=args)
ProcessExecutionError: Unexpected error while running command.
Command: ['/var/lib/cloud/instance/scripts/part-001']
Exit code: 2
Reason: -
Stdout: ''
Stderr: ''
如果我 ssh 进入实例和 sudo su 并直接执行 shell 脚本:
/var/lib/cloud/instance/scripts/part-001
然后它运行良好。此外,如果我模拟 cloud-init 运行它的方式,它也可以工作:
python
>>> import cloudinit.util
>>> cloudinit.util.runparts("/var/lib/cloud/instance/scripts/")
使用其中任何一种方法,如果我故意在脚本中引入错误,则会产生错误消息。如何调试有用的调试输出的选择性缺失?
【问题讨论】:
-
我也有这个问题。我得到一个退出代码 1。
-
我也有同样的问题。你解决了吗?
-
不。我刚刚停止使用 Amazon Linux。我认为他们自己的定制将是支持最好的 AMI,但它似乎是支持最差的一个。
标签: amazon-web-services amazon-ec2