service mysql start?

Kevin·2024년 5월 18일

Server

목록 보기
7/14
post-thumbnail

🥰 서론

내가 회사에서 맡고 있는 업무 중 서버 관리를 해야 하는 업무가 있다.

우리 회사에서는 서버를 온-프레미스 방식으로 관리 하고 있다.

그렇기에 서버에 올라와있는 여러 프로세스들을 관리 해주어야 하는데, MySQL 프로세스를 관리할 때 꼭 앞에 service 라는 키워드를 붙여야 된다는 것이다.

왜 해당 키워드를 붙여야 하는건지에 대해서 이번 기회에 궁금증이 생겨서 공부를 해보았다.


😍 본론

해당 글은 CentOS7 버젼을 기준으로 작성되었습니다.


왜 mysql을 시작할 때 앞에 service를 붙이는 걸까?

service는 리눅스 시스템 서비스를 조작하기 위해 사용하는 명령어이다.

시스템 서비스 명령어는 리눅스 /etc/init.d 디렉토리에 있는 링크 파일들 중에 시작이나 종료 재시작을 선택할 수 있다.

/etc/init.d 디렉토리에는 리눅스에서 사용할 수 있는 프로그램 실행 파일의 링크 파일이 위치하는 곳으로 service 명령어를 사용하여 해당 프로그램을 시작하거나, 종료, 재시작을 명령할 수 있다.

  • start : 중지된 서비스 싲가
  • stop : 실행되는 서비스 중지
  • restart : 멈춘 후 실행 서비스 시작 또는 중지된 서비스 시작
  • reload : 연결을 끊지 않은 채 서비스 설정 리로드
  • status : 서비스 실행 여부를 나타냄

위 사진같이 mysql이 /etc/init.d 디렉토리 아래에 있는 걸 확인 할 수 있다.

그렇다면 해당 디렉토리 아래에 파일을 위치 시키는 것만으로도 서비스 등록을 할 수 있을까?

  1. 먼저 /etc/init.d 디렉토리 아래에 서비스 스크립트를 작성한다.
#!/bin/bash
# My Custom Service

case "$1" in
  start)
    echo "Starting My Custom Service"
    /path/to/your/service/script.sh start
    ;;
  stop)
    echo "Stopping My Custom Service"
    /path/to/your/service/script.sh stop
    ;;
  restart)
    echo "Restarting My Custom Service"
    /path/to/your/service/script.sh restart
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

exit 0

위 코드는 start, stop, restart에 따라 각각 분기 처리를 해주는 로직을 가지고 있다.

만약 톰캣을 서비스로 등록하고자 한다면 start시 bin/startup.sh을 작성해주면 된다.


  1. 서비스를 등록한다.
sudo chkconfig --add my_service

chkconfig은 리눅스 시작 프로그램을 관리하는 프로그램이다.

쉘에 chkconfig 명령을 해보면 현재 시스템에 등록된 서비스 목록을 확인할 수 있고, 서비스 이름을 지정하면 해당 서비스에 대해서만 상태를 확인할 수도 있다.


그렇다면 서비스 등록을 하는 장점은 무엇일까?

예를 들어 서비스로 프로그램이 등록 되어있지 않다면 서버 관리자가 root 계정으로 접속을 한 후 직접 프로그램을 실행시키는 명령을 해야 한다.

하지만 서비스로 등록이 되어있다면 서버를 실행했을 때 자동으로 프로그램을 실행 시킬 수 있기에 많은 이점을 가지고 있다.


😜 여담

예전에는 이렇게 궁금증이 생기면 바로 공부를 하곤 하였는데, 최근에는 직장인이 되었다는 이유와 피곤하다는 말도 안되는 이유로 매번 궁금증을 애써 미뤄왔던 것 같다.

앞으로는 이러한 궁금증을 정면으로 마주해야겠다.

profile
Hello, World! \n

0개의 댓글