AWS EC2 서버를 재부팅할 때 서비스 시작

이것은 AWS의 EC2에서 서버를 재부팅할 때 응용 프로그램이 시작되는 방법입니다.
이번에는 EC2를 가지고 노는 서버 내 형식으로만 재부팅하기로 했다.

이번에 사용한 Chkconfig에 대해서.


chkconfig이란 시스템(OS)의 상태에 따라 서비스의 시작과 정지를 설정할 수 있는 구조다.
예를 들어 서버를 시작할 때 Nginx를 시작하려면chkconfig를 설정하면 서비스와 프로그램을 자동으로 시작할 수 있습니다.

시작할 때 실행되는 명령에 대한 설명


재부팅할 때 특정 명령을 실행하기 위해 /etc/init.d/app-start에 다음과 같이 기술되어 있습니다.
※ 여기서는 부팅 Nginx에 대해 설명합니다.
app-start
#!/bin/sh
# chkconfig: 345 99 10
# description: start shell
case "$1" in
  start)
    #実行したいコマンドを記述
    systemctl start nginx
       ;;
  stop)
       echo "stop!"
       ;;
  *) break ;;
esac
파일을 만든 후 다음 명령을 실행하고 파일 실행 권한을 부여합니다.
sudo chmod +x /etc/init.d/app-start

시작할 때 루트 사용자 이외의 사용자가 실행하고자 하는 명령에 대한 설명


또한 방금 설정한 것은 루트 사용자가 실행한 명령입니다.
웹 응용 프로그램 등을 활용할 때 특정 사용자(depuro 전용 사용자)가 응용 서버 등을 실행하고 싶은 경우가 있다고 생각합니다.예를 들어 응용 프로그램 개발을 통해 사용자가 응용 프로그램의 서버를 시작하려고 할 때 등이다.
이 경우 방금 제작된/etc/init.d/app-start에 다음과 같은 기술이 추가된다.
app-start
#!/bin/sh
# chkconfig: 345 99 10
# description: start shell
case "$1" in
  start)
    # 実行したいコマンドを記述
    systemctl start nginx
    
    # 特定のユーザーで実行したいコマンドを記述
    # 以下のようにすることで特定のユーザーのホームディレクトリのstart.shファイルを実行する
      su -l ユーザー名 "sh /home/ユーザー名/start.sh"
    
       ;;
  stop)
       echo "stop!"
       ;;
  *) break ;;
esac
/home/ユーザー名start.sh 파일을 만들고 특정 사용자가 실행하고자 하는 명령을 기술합니다.
※ 다음은 Rails를 통해 서버를 시작하라는 명령입니다.
cd /var/www/アプリケーション名
bundle exec unicorn -E production -c config/unicorn.rb -D

chkconfig에 로그인


기술이 끝난 후 다음 명령을 실행하여chkconfig에 로그인합니다.
sudo chkconfig --add app-start
sudo chkconfig app-start on
이상의 서버가 재부팅되면 서비스 및 애플리케이션이 자동으로 시작됩니다.

좋은 웹페이지 즐겨찾기