코딩마을방범대

[우분투] 실행 파일 서비스로 등록하기 본문

💡 백엔드/우분투

[우분투] 실행 파일 서비스로 등록하기

신짱구 5세 2024. 9. 19. 15:56
728x90

 

 

apt나 apt-get과 같이 패키지 관리 시스템을 통해 설치한 것이 아닌 경우, systemctl로 실행이 불가할 수 있다.

이럴 경우 직접 서비스로 등록을 해줘야한다.

서비스로 등록하지 않을 경우 서버 재실행 시 자동으로 실행이 되지 않아 번거롭게 매번 수동으로 프로그램을 직접 실행시켜야 한다!

 

 

service와 systemctl 의 차이점

 

service와 systemctl은 리눅스에서 서비스(데몬)를 관리하는 데 사용되는 명령어이지만, 몇 가지 차이점이 있다.

 

  • 초기화 시스템: service는 전통적인 SysVinit 또는 Upstart 시스템에서 사용되고, systemctl은 systemd를 사용하는 시스템에서 사용됨
  • 기능: systemctl은 서비스 관리 외에도 타이머, 소켓, 장치 관리 등 다양한 기능을 제공하며, 더 많은 옵션과 유연성을 갖추고 있음
  • 사용성: systemctl은 더 현대적인 명령어 형식을 제공하여, 서비스 관리가 더 직관적이고 일관된 방식으로 이루어짐

 


 

service 명령어

명령어 설명
service <서비스명> start 서비스 시작
service <서비스명> stop 서비스 중지
service <서비스명> restart 서비스 재시작
service <서비스명> status 서비스 상태 확인

 


 

service 명령어

명령어 설명
systemctl start <서비스명> 서비스 시작
systemctl stop <서비스명> 서비스 중지
systemctl restart <서비스명> 서비스 재시작
systemctl status <서비스명> 서비스 상태 확인
systemctl enable <서비스명> 부팅 시 자동 시작 설정
systemctl disable <서비스명> 부팅 시 자동 시작 해제

 

 

 

 

 


 

 

 

 

 

 

서비스 등록하기

 

 

 

1. 서비스 파일 생성

 

일반적으로 서비스 파일은 /etc/systemd/system/ 디렉토리에 위치한다.

아래 명령어를 통해 새로운 서비스 파일을 생성해준다.

sudo nano /etc/systemd/system/서비스명.service

 


 

2. 서비스 파일 편집

 

[Unit]
Description=VPN Server
After=network.target

[Service]
ExecStart=서비스 파일 위치 start
WorkingDirectory=서비스 디렉토리 위치
StandardOutput=journal
StandardError=journal
Restart=on-failure

[Install]
WantedBy=multi-user.target

 

위 파일에서 파일, 디렉토리 위치를 예시로 입력해보자면 아래와 같다.

ExecStart=/home/ubuntu/vpnserver start 
WorkingDirectory=/home/ubuntu/

 

 

 


 

 

3. 파일 저장 및 종료

 

파일을 저장하고 나가려면 Ctrl + O를 눌러 저장한 후, Ctrl + X를 눌러 종료한다.

 

 


 

 

4. 서비스 리로드

 

systemd에 새로운 서비스를 인식시키기 위해 다음 명령어를 실행한다.

sudo systemctl daemon-reload




 

 

5. 서비스 시작 및 자동 시작 설정

 

등록한 서비스 시작 및 서버가 재부팅 됐을 때 자동 시작 되도록 설정해준다.

sudo systemctl start 서비스명 && sudo systemctl enable 서비스명

 

 

 

 

728x90