以简单的方式引导Amazon Linux AMI

当我的实例(Amazon Linux AMI)启动时,我想运行一个python程序(里面有一个无限的while循环)。 我已经创build了一个简单的shell脚本,如下所示:

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

然后,我在/etc/rc.local添加了脚本run_service.sh的名称,以便每次启动实例时运行。 但是这个简单的方法似乎没有工作,没有任何反应。 我的shell脚本和python文件都在/home/ec2-user文件夹中。 我是否需要在rc.local和shell脚本中指定完整path来执行?

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

那么,怎样才能以一种非常简单的方式避免像puppet / chef等复杂的设置呢? 例如,在哪里把我的python文件和run_service.sh脚本? 请给我一个简单的例子。

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

 #!/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是可执行的。