我创建了一个自定义Amazon AMI(Fedora),它运行几个脚本,然后关闭。EC2上的启动脚本
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脚本工作得很好。
我错过了什么吗?
process.py脚本正在启动时执行......所以我不认为这是问题所在。这只是“git pull”没有被执行。 – Mark 2009-02-13 18:50:44
顺便说一句,我做了上述建议(#chkconfig:345 99 02),仍然没有运气...我会认为是git调用失败,因为网络尚未初始化或什么? – Mark 2009-02-14 03:08:29