Linux (CentOS) Service 등록하기 및 재기동시 자동 실행하기
linux의 실행파일이 자주 사용되어지고 또 재기동시 자동으로 시작되어야 한다면 실행파일을 Service에 등록을 하고 사용한다. Systemd를 통해서 Service를 등록할수도 관리할수도 있다. 이 모든 작업을 할때는 root 권한으로 진행을 해야 한다.
필자는 MinIO를 설치했고 이를 실행하기 위한 startup.sh, shutdown.sh 파일을 만들었다. (startup.sh의 경로는 /app/minio/oingdaddy) 이를 Service에 등록하고 또한 OS 재기동이 될때 MinIO Service가 자동으로 실행되도록 할 계획이다. (혹시 궁금하신 분이 있을까 덧붙이자면 MinIO 설치 및 실행파일 생성은 여기를 참고하도록 한다.)
CentOS version은 7.9 이다.
Service 등록 위치
# cd /etc/systemd/system
Service를 등록하기 위해서는 위의 경로로 이동을 한다. 그리고 아래와 같은 스크립트를 작성하도록 한다.
Service 등록 스크립트 작성
/etc/systemd/system/minio.service
[Unit]
Description=Systemd MinIO Daemon
[User]
User=oingdaddy
Group=oingdaddy
[Service]
Type=simple
ExecStart=/app/minio/oingdaddy/startup.sh
ExecStop=/app/minio/oingdaddy/shutdown.sh
Restart=always
[Install]
WantedBy=multi-user.target
실행을 시킬 계정, start, stop 등에 대한 정보를 넣어서 위와 같이 작성을 하고 저장을 한다.
Service 실행
# systemctl start minio.service
Service 기동 확인
# systemctl status minio.service
실행을 하면 정상적으로 기동이 되었는지 systemctl status를 통해 확인을 해준다. loaded, active, running 상태인지 잘 확인한다.
# systemctl list-units --type service --all
참고로 이것은 모든 Service 들의 목록을 확인하는 것이다.
OS 재기동시 Service 자동 시작 등록
마지막으로 OS가 재기동시에 Service가 자동으로 실행되도록 하는 방법이다.
# systemctl enable minio
이렇게 실행을 하면 자동 시작 등록이 완료가 된 것이다. 참고로 위 명령을 실행하면
Created symlink from /etc/systemd/system/multi-user.target.wants/minio.service to /etc/systemd/system/minio.service.
이런 로그가 찍히는데 /etc/systemd/system/multi-user.target.wants 로 들어가보면 재기동시 실행할 Service들을 확인할 수 있다.
끝!