코딩마을방범대
[우분투] 실행 파일 서비스로 등록하기 본문
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
'💡 백엔드 > 우분투' 카테고리의 다른 글
[Kafka] 우분투에 kafka 설치 후 메시지 전송 테스트하기 (0) | 2024.11.19 |
---|---|
[우분투] apt와 apt-get의 차이점 (0) | 2024.09.19 |
[우분투] 개별 폴더에 Nginx 각각 구축하기 (1) | 2024.01.25 |
우분투의 sshpass 사용해보기 (1) | 2024.01.24 |
우분투에서 파일 복사하기 (0) | 2024.01.16 |