Tôi đã tạo Amazon AMI tùy chỉnh (Fedora) chạy một vài tập lệnh và sau đó tắt.Kịch bản khởi động trên EC2
Vấn đề với AMI là nếu mã của tôi thay đổi thì phải có một cách cho cá thể AMI để lấy các tập lệnh mới nhất trước khi thực thi chúng.
tôi đã viết một kịch bản shell & đặt nó trong /etc/init.d/nt_startup
Để giữ mã đến nay, tôi thực hiện một kịch bản git pull
vỏ trong kho lưu trữ mã của tôi và sau đó thực thi kịch bản.
Vấn đề là, git pull
dường như không chạy khi một phiên bản khởi động, nhưng tập lệnh python chỉ chạy tốt. Bạn không chắc chắn những gì tôi đang mất tích ... đây là kịch bản khởi động:
#!/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
Vỏ kịch bản /usr/scripts/code/git_latest
trông như thế này:
#pulls in the latest code from the repository
cd /usr/scripts/code
sudo git pull
Nên kéo xuống process.py
kịch bản mới nhất.
Điều kỳ lạ là nếu tôi ssh vào cá thể của mình và thực thi tập lệnh khởi động theo cách thủ công (/etc/init.d/nt_startup "start"
), thì tập lệnh git sẽ hoạt động tốt.
Tôi có thiếu gì đó không?
Tại sao bạn sử dụng sudo? Các tập lệnh khởi động chạy dưới dạng root. – tylerl