리눅스에서 서비스 자동 시작이란, 서버가 재부팅되었을 때 특정 프로그램이나 데몬이 자동으로 실행되도록 설정하는 것을 말합니다.
예를 들어 웹 서버(Apache, Nginx), 데이터베이스(MySQL, PostgreSQL), 애플리케이션 서버(Node.js, Spring Boot) 같은 서비스는 매번 수동으로 실행하는 대신 자동 시작을 설정하는 것이 일반적입니다.
이를 통해 서버 재부팅 시 서비스가 중단되는 사고를 방지하고, 관리 효율성을 높일 수 있습니다.
systemd와 서비스 관리
최근 대부분의 리눅스 배포판(Ubuntu 16.04+, CentOS 7+, Debian 8+)은 systemd를 서비스 관리 도구로 사용합니다.
systemd는 서비스 시작, 중지, 재시작, 자동 실행 설정까지 모두 가능하며, systemctl 명령어로 조작합니다.
서비스 자동 시작 확인
현재 특정 서비스가 부팅 시 자동 시작되도록 설정되어 있는지 확인하려면 다음을 입력합니다.
sudo systemctl is-enabled 서비스명
예)
sudo systemctl is-enabled nginx
결과가 enabled면 자동 시작, disabled면 자동 시작이 꺼져 있는 상태입니다.
서비스 자동 시작 설정
부팅 시 자동 실행되도록 하려면 enable 명령어를 사용합니다.
sudo systemctl enable 서비스명
예)
sudo systemctl enable nginx
이렇게 하면 다음 부팅 때 nginx 서비스가 자동으로 실행됩니다.
서비스 자동 시작 해제
특정 서비스가 부팅 시 자동으로 실행되지 않게 하려면 disable 명령어를 사용합니다.
sudo systemctl disable 서비스명
예)
sudo systemctl disable nginx
수동 실행과 차이점
자동 시작을 설정해도, 현재 실행 중이지 않다면 즉시 실행되지는 않습니다.
즉, enable은 부팅 시 동작만 설정하는 것이고, 지금 바로 실행하려면 다음을 입력해야 합니다.
sudo systemctl start 서비스명
사용자 정의 서비스 자동 시작
직접 만든 프로그램이나 스크립트를 부팅 시 실행하려면 서비스 등록부터 해야 합니다.
- 서비스 파일 생성
sudo nano /etc/systemd/system/myapp.service - 예시 내용
[Unit]
Description=My Application Service
After=network.target
[Service]
ExecStart=/usr/bin/python3 /home/ubuntu/app.py
Restart=always
User=ubuntu
WorkingDirectory=/home/ubuntu
[Install]
WantedBy=multi-user.target
- 서비스 적용
sudo systemctl daemon-reload
sudo systemctl enable myapp.service
sudo systemctl start myapp.service
이제 재부팅 시 자동으로 실행됩니다.
자동 시작 상태 전체 확인
모든 서비스의 자동 시작 상태를 확인하려면 다음 명령어를 사용합니다.
systemctl list-unit-files --type=service | grep enabled
문제 해결 팁
- 서비스 파일 오류 – ExecStart 경로가 잘못되면 자동 시작 실패
- 권한 문제 – 실행 사용자 권한 부족 시 작동 안 함
- 로그 확인 – sudo journalctl -u 서비스명 -b 로 부팅 시 로그 확인 가능
- 네트워크 의존성 – After=network.target 설정으로 네트워크 연결 후 실행
결론
리눅스 서비스 자동 시작 설정은 서버 안정성을 높이는 기본 작업입니다.
systemctl enable 명령어로 간단히 적용 가능하며, 직접 만든 프로그램도 서비스로 등록해 자동 실행할 수 있습니다.
특히 서버 운영 시 재부팅 후 서비스가 동작하지 않아 발생하는 장애를 예방하려면, 필수적으로 설정해두는 것이 좋습니다.
'리눅스의 모든 것' 카테고리의 다른 글
리눅스 포트 열기 방법 – 방화벽 설정부터 확인까지 완벽 가이드 (2) | 2025.08.17 |
---|---|
리눅스 서비스 자동 시작 설정 – 부팅 시 프로그램 자동 실행하기 (2) | 2025.08.16 |
리눅스 sudo 권한 부여 방법 – 사용자 추가부터 설정까지 완벽 가이드 (2) | 2025.08.15 |
리눅스 하드디스크 마운트 방법 – 신규 디스크 인식부터 자동 마운트까지 (2) | 2025.08.15 |
리눅스 서비스 등록 방법 – systemd로 프로그램 자동 실행 설정하기 (2) | 2025.08.15 |