2014年3月14日/ AWS, ec2, rc.d/init.d
[AWS][LINUX]EC2起動時に任意のスクリプトを実行する。
前回、EC2起動時に任意のコマンドを実行する方法をご紹介しましたが、今回は処理をスクリプトファイルで実行する方法です。
実際にはランレベルやどういう仕組みで処理が実行されるかという話があるのですが、手っ取り早くAWSデフォルト状態で処理を実行する方法を紹介していきます。
まずはルート権限を取りましょう。
1 |
sudo su - |
次に、起動時のスクリプトがあるディレクトリに移動します。
1 |
cd /etc/rc.d/init.d |
スクリプトファイルを生成します。
1 |
vim boo_test |
例として、test.phpを起動するスクリプトを記載します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#!/bin/sh start(){ php /var/www/html/test.php return 0 } stop(){ return 0 } restart(){ return 0 } case "$1" in start) start ;; stop) stop ;; restart) restart stop start ;; esac |
実行権限をrootにしてスクリプト起動リンクを生成します。
1 2 3 |
chown root.root /etc/rc.d/init.d/boo_test chmod 744 /etc/rc.d/init.d/boo_test ln -s /etc/rc.d/init.d/boo_test /etc/rc.d/rc3.d/S98boo_test |
あとはサーバーを起動してプロセスが起動していれば成功です。
何故こう書くと動くのかといったお話は今回参考にさせて頂いたサイトに記載されていますので、こちらをご参照ください。