gpt4 book ai didi

amazon-web-services - 用户数据脚本无故失败

转载 作者:行者123 更新时间:2023-12-04 15:44:16 26 4
gpt4 key购买 nike

我正在使用 Web 控制台启动 Amazon Linux 实例 (ami-fb8e9292),将数据粘贴到用户数据框中以在启动时运行脚本。如果我使用 example given by amazon 启动一个网络服务器,它的工作原理。但是当我运行自己的脚本(也是 #!/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/")

使用这两种方法中的任何一种,如果我故意在脚本中引入错误,则会产生错误消息。如何调试有用的调试输出的选择性缺失?

最佳答案

我不确定每个人是否都会遇到这种情况,但是我遇到了这个问题并且能够通过更改我的第一行来解决它:

#!/bin/bash -e -v

就这样:
#!/bin/bash

当然,现在我的脚本失败了,我不知道它走了多远,但至少我通过了它而不是运行它。 :)

关于amazon-web-services - 用户数据脚本无故失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23818209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com