본문 바로가기

Linux Unix

[ Linux ] service 등록 (1) - 서비스로 등록해서 서버 (Daemon) 사용하기

반응형

ExecStart는 Systemd 서비스 파일에서 서비스가 시작될 때 실행할 명령어를 지정하는 옵션입니다. Systemd는 리눅스에서 널리 사용되는 시스템 및 서비스 관리자이며, 서비스 파일은 /etc/systemd/system/ 디렉토리에 위치하며 .service 확장자를 갖습니다.

ExecStart를 포함한 전체적인 서비스 파일 설정 방법은 다음과 같습니다:

Bash 스크립트를 시스템 서비스로 등록하려면, systemd를 사용하여 서비스를 설정할 수 있습니다. 다음은 bash 스크립트를 서비스로 등록하는 방법입니다.

1. Bash 스크립트 작성

먼저 실행하고자 하는 bash 스크립트를 작성합니다. 예를 들어, /usr/local/bin/my-script.sh 라는 위치에 아래와 같은 스크립트를 저장했다고 가정합니다:

#!/bin/bash
seep 10

실행 시 10초 동안 service가 active (running) 상태이었다가 10초 후 동작이 끝나면 loaded 상태로 변경 됩니다.

스크립트에 실행 권한을 부여합니다:

chmod +x /usr/local/bin/my-script.sh

2. 서비스 파일 생성

예를 들어, myservice.service라는 파일을 /etc/systemd/system/ 디렉토리에 생성합니다.

   sudo nano /etc/systemd/system/myservice.service

3. 서비스 파일 구성: 다음과 같은 구조로 작성합니다.

   [Unit]
   Description=My Custom Service
   After=network.target

   [Service]
   Type=simple
   ExecStart=/usr/bin/mycommand --option value
   Restart=on-failure
   User=myuser
   WorkingDirectory=/path/to/directory

   [Install]
   WantedBy=multi-user.target

각 섹션의 의미는 다음과 같습니다:

  • [Unit]: 서비스에 대한 기본 정보를 설정하는 섹션입니다.
    • Description: 서비스에 대한 설명입니다.
    • After: 특정 타겟이나 서비스가 시작된 후에 이 서비스가 시작되도록 설정합니다.
  • [Service]: 서비스의 동작 방식을 정의합니다.
    • Type: 서비스 유형을 지정합니다. simple은 기본값으로, ExecStart에서 지정한 명령이 바로 실행됩니다.
    • ExecStart: 서비스가 시작될 때 실행할 명령어입니다. 명령어의 전체 경로와 옵션을 지정해야 합니다.
    • Restart: 서비스가 실패했을 때 재시작할지 여부를 설정합니다. (on-failure, always 등)
    • User: 서비스를 실행할 사용자 계정을 지정합니다.
    • WorkingDirectory: 서비스가 실행될 때 사용할 작업 디렉토리를 지정합니다.
  • [Install]: 서비스가 어떤 타겟에서 활성화될지를 설정합니다.
    • WantedBy: 이 서비스가 포함될 타겟을 지정합니다. multi-user.target은 일반적으로 기본적인 다중 사용자 모드입니다.

4. 서비스 파일 적용

작성한 후, Systemd에 서비스 파일을 인식시키기 위해 다음 명령을 실행합니다.

   sudo systemctl daemon-reload

5. 서비스 시작 및 활성화:

   sudo systemctl start myservice
   sudo systemctl enable myservice

6. 서비스 상태 확인

서비스가 제대로 실행되고 있는지 확인하려면:

sudo systemctl status my-script.service

active (running) : 현재 실행 되어 있는 상태입니다.
loaded : 실행에는 문제없고 실행이 끝난 상태입니다.

이제 이 스크립트는 시스템이 부팅될 때 자동으로 실행됩니다.

반응형