以简单的方式引导 Amazon Linux AMI

以简单的方式引导 Amazon Linux AMI

我想在我的实例 (Amazon Linux AMI) 启动时运行一个 Python 程序(内部有一个无限的 while 循环作为侦听器)。我创建了一个简单的 shell 脚本,如下所示:

#!/bin/sh
python bootstrap.py > bootstrap.log

然后我将此脚本的名称添加到每次实例启动时运行的run_service.sh文件中/etc/rc.local。但这种简单的方法似乎不起作用,什么也没发生。我的 shell 脚本和 python 文件都在/home/ec2-user文件夹中。我需要在 shell 脚本和 python 文件都指定完整路径rc.local才能执行吗?

我发现 Amazon Linux AMI 是基于 CentOS/Fedora 的,而不是 Ubuntu。cloud-init 选项似乎不太清楚,因为我需要将此实例捆绑到自定义 AMI 中。

那么,我该如何以一种非常简单的方式避免使用 puppet/chef 等复杂设置呢?例如,将我的 python 文件和脚本放在哪里run_service.sh?请给我一个简单的例子。

答案1

您可能需要提供脚本及其使用的文件的完整路径

#!/bin/sh
python /home/ec2-user/bootstrap.py &>/home/ec2-user/bootstrap.log

(你可能需要 /usr/bin/python)

在 rc.local 中

/home/ec2-user/run_service.sh 2>/tmp/myservicestart.log

还要确保 run_service.sh 是可执行的。

相关内容