我创建了一个自定义 Amazon AMI (Fedora) 运行一些脚本然后关闭。
AMI 的问题在于,如果我的代码发生更改,那么 AMI 实例必须有办法在执行它们之前获取最新的脚本。
我写了一个shell脚本并将其放入/etc/init.d/nt_startup
为了使代码保持最新,我git pull
在代码存储库中执行了一个 shell 脚本,然后执行该脚本。
问题是,git pull
实例启动时似乎没有运行,但 python 脚本运行得很好。不知道我错过了什么......这是启动脚本:
#!/bin/bash
#
# ec2 Startup script for EC2 machines
#
# chkconfig: 345 99 02
# description: Script used to issue startup and shutdown commands.
#
if [ "$1" = "start" ]; then
/usr/scripts/code/git_latest
python /usr/scripts/code/process.py
exit
fi
if [ "$1" = "stop" ]; then
#nothing
exit
fi
/usr/scripts/code/git_latest
shell 脚本如下所示:
#pulls in the latest code from the repository
cd /usr/scripts/code
sudo git pull
它应该拉下最新的process.py
脚本。
奇怪的是,如果我 ssh 进入我的实例并手动执行启动脚本 ( /etc/init.d/nt_startup "start"
),git 脚本就可以正常工作。
我错过了什么吗?