EC2インスタンス起動時に指定ユーザでシェルを実行する方法
経費削減のため、指定時間だけ起動したいというEC2インスタンスの再起動時に
rootユーザではなく、指定ユーザでシェルを起動する方法。
再起動時の確認が手間なのと地味にはまったので忘れないように備忘録として書いておく。
- /etc/init.dに起動シェルスクリプト設置(自作サービス)
- chmod 775 /etc/init.d/(サービス名)
- chkconfig --add (サービス名)
例としてはmyserviceスクリプトをinit.d以下に作成して
そのスクリプト経由でユーザを切り替えて(ec2-user)任意のシェルスクリプト(hoge.sh)を起動させる
/etc/init.d/myservice
#!/bin/sh
# chkconfig: 2345 99 10
# description: start shell
case "$1" in
start)
su -l ec2-user -c "sh /home/ec2-user/hoge.sh"
;;
stop)
;;
*) break ;;
esac
上記作成後、EC2インスタンス起動時に実行する設定に追加
$chkconfig --add myservice
$chkconfig myservice on