?
사용자

systemd를 이용한 my-app 서비스 시작, 중지, 상태 확인 가이드

systemd를 사용하여 'my-app'이라는 이름의 서비스를 관리하는 방법을 안내합니다. 서비스 시작, 중지, 재시작, 상태 확인 및 로그 확인 방법을 포함합니다.

#systemd#service#management#linux#app
recipe.md
my-app 서비스 systemd 관리 레시피

이 레시피는 systemd를 사용하여 'my-app'이라는 이름의 서비스를 효율적으로 관리하는 방법을 제공합니다. 서비스의 시작, 중지, 재시작, 상태 확인 및 로그 확인을 위한 구체적인 명령어를 포함합니다.

1. 서비스 정의 파일 생성 (my-app.service)

먼저, 'my-app' 서비스에 대한 systemd 유닛 파일을 생성해야 합니다. 이 파일은 서비스의 실행 방식, 의존성 등을 정의합니다. /etc/systemd/system/my-app.service 경로에 다음과 같은 내용을 작성하세요.

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

[Service]
User=appuser
Group=appgroup
WorkingDirectory=/home/appuser/my-app
ExecStart=/usr/bin/node /home/appuser/my-app/app.js
Restart=always

[Install]
WantedBy=multi-user.target
  • Description: 서비스에 대한 설명입니다.
  • After: 네트워크가 활성화된 후에 서비스를 시작하도록 설정합니다.
  • User, Group: 서비스를 실행할 사용자 및 그룹을 지정합니다. 실제 환경에 맞게 수정하세요.
  • WorkingDirectory: 서비스가 실행될 작업 디렉토리입니다.
  • ExecStart: 서비스를 시작할 명령어입니다. 여기서는 Node.js 애플리케이션 /home/appuser/my-app/app.js를 실행합니다. 실제 실행 파일 경로와 명령어로 수정해야 합니다.
  • Restart=always: 서비스가 비정상적으로 종료될 경우 항상 자동으로 재시작하도록 설정합니다.
  • WantedBy=multi-user.target: 시스템이 다중 사용자 모드로 부팅될 때 이 서비스를 시작하도록 설정합니다.

2. systemd 데몬 재로드

서비스 정의 파일을 수정한 후에는 systemd가 변경 사항을 인식하도록 데몬을 재로드해야 합니다.

sudo systemctl daemon-reload

3. 서비스 관리 명령어

이제 'my-app' 서비스를 관리할 수 있습니다.

  • 서비스 시작:

    sudo systemctl start my-app
    
  • 서비스 중지:

    sudo systemctl stop my-app
    
  • 서비스 재시작:

    sudo systemctl restart my-app
    
  • 서비스 상태 확인:

    sudo systemctl status my-app
    

    이 명령어를 실행하면 서비스의 현재 상태(active, inactive, failed 등), 마지막 로그 메시지 등을 확인할 수 있습니다.

  • 서비스 활성화 (부팅 시 자동 시작):

    sudo systemctl enable my-app
    

    서비스를 활성화하면 시스템 부팅 시 자동으로 시작됩니다.

  • 서비스 비활성화 (부팅 시 자동 시작 방지):

    sudo systemctl disable my-app
    

4. 서비스 로그 확인

서비스에서 발생하는 로그를 확인하려면 journalctl 명령어를 사용합니다.

  • 'my-app' 서비스의 실시간 로그 보기:

    sudo journalctl -f -u my-app
    
  • 'my-app' 서비스의 모든 로그 보기:

    sudo journalctl -u my-app
    
  • 로그 파일 크기 제한 설정 (예: 100MB, 5개 파일 보관): journald 설정 파일(/etc/systemd/journald.conf)을 수정하여 로그 크기를 관리할 수 있습니다. SystemMaxFileSizeSystemMaxFiles 옵션을 사용하세요.

    [Journal]
    SystemMaxFileSize=100M
    SystemMaxFiles=5
    

    변경 후 sudo systemctl restart systemd-journald 명령으로 journald 서비스를 재시작해야 합니다.

주의사항:

  • User, Group, WorkingDirectory, ExecStart 경로는 실제 애플리케이션 환경에 맞게 반드시 수정해야 합니다.
  • my-app 서비스 정의 파일의 권한은 644로 설정하는 것이 일반적입니다 (sudo chmod 644 /etc/systemd/system/my-app.service).
13
스크랩
7
좋아요
0
댓글