Linux에서 서비스를 관리하는 명령어들은 시스템에서 실행 중인 서비스의 시작, 중지, 재시작, 상태 확인 등을 수행하는 데 사용됩니다. 서비스 관리 명령어는 배포판에 따라 다를 수 있지만, 주요 명령어들을 설명하겠습니다.
System V Init (SysVinit) 시스템에서의 서비스 관리 명령어
1. service
service
명령어는 SysVinit 시스템에서 서비스를 관리하는 데 사용됩니다.
- 사용법:
sudo service service_name start
: 서비스를 시작.sudo service service_name stop
: 서비스를 중지.sudo service service_name restart
: 서비스를 재시작.sudo service service_name status
: 서비스의 상태를 확인.
2. /etc/init.d/
SysVinit 시스템에서는 서비스 스크립트가 /etc/init.d/
디렉토리에 저장됩니다.
- 사용법:
sudo /etc/init.d/service_name start
: 서비스를 시작.sudo /etc/init.d/service_name stop
: 서비스를 중지.sudo /etc/init.d/service_name restart
: 서비스를 재시작.sudo /etc/init.d/service_name status
: 서비스의 상태를 확인.
systemd 시스템에서의 서비스 관리 명령어
systemd
는 많은 현대적인 Linux 배포판에서 사용하는 시스템 및 서비스 관리자입니다.
1. systemctl
systemctl
명령어는 systemd
시스템에서 서비스를 관리하는 데 사용됩니다.
- 사용법:
sudo systemctl start service_name
: 서비스를 시작.sudo systemctl stop service_name
: 서비스를 중지.sudo systemctl restart service_name
: 서비스를 재시작.sudo systemctl reload service_name
: 서비스를 다시 로드(구성 파일을 다시 읽음).sudo systemctl status service_name
: 서비스의 상태를 확인.sudo systemctl enable service_name
: 부팅 시 서비스를 자동으로 시작.sudo systemctl disable service_name
: 부팅 시 서비스를 자동으로 시작하지 않음.sudo systemctl is-enabled service_name
: 서비스가 부팅 시 자동으로 시작되는지 확인.sudo systemctl is-active service_name
: 서비스가 현재 활성 상태인지 확인.sudo systemctl list-units --type=service
: 활성화된 모든 서비스 목록을 표시.sudo systemctl daemon-reload
:systemd
데몬을 다시 로드 (새로운 서비스 파일 적용).
Upstart 시스템에서의 서비스 관리 명령어
Upstart는 Ubuntu의 초기 버전에서 사용되던 이벤트 기반 init 시스템입니다.
1. initctl
initctl
명령어는 Upstart 시스템에서 서비스를 관리하는 데 사용됩니다.
- 사용법:
sudo initctl start service_name
: 서비스를 시작.sudo initctl stop service_name
: 서비스를 중지.sudo initctl restart service_name
: 서비스를 재시작.sudo initctl status service_name
: 서비스의 상태를 확인.
2. service
Upstart에서도 service
명령어를 사용할 수 있습니다.
- 사용법:
sudo service service_name start
: 서비스를 시작.sudo service service_name stop
: 서비스를 중지.sudo service service_name restart
: 서비스를 재시작.sudo service service_name status
: 서비스의 상태를 확인.
실습 예제
systemd 기반 시스템 (예: Ubuntu 16.04 이후, CentOS 7, Fedora 15 이후)
- 서비스 시작 및 중지:
sudo systemctl start nginx
sudo systemctl stop nginx
- 서비스 재시작 및 상태 확인:
sudo systemctl restart nginx
sudo systemctl status nginx
- 서비스 활성화 및 비활성화:
sudo systemctl enable nginx
sudo systemctl disable nginx
- 활성화된 모든 서비스 나열:
sudo systemctl list-units --type=service
- 데몬 재로드:
sudo systemctl daemon-reload
SysVinit 기반 시스템 (예: CentOS 6, Debian 7)
- 서비스 시작 및 중지:
sudo service httpd start
sudo service httpd stop
- 서비스 재시작 및 상태 확인:
sudo service httpd restart
sudo service httpd status
- /etc/init.d/ 스크립트를 사용하여 서비스 관리:
sudo /etc/init.d/httpd start
sudo /etc/init.d/httpd stop
서비스 관리 요약
- systemd: 현대적인 Linux 배포판에서 널리 사용되며,
systemctl
명령어를 사용하여 서비스 관리. - SysVinit: 전통적인 init 시스템으로,
service
및/etc/init.d/
스크립트를 사용하여 서비스 관리. - Upstart: Ubuntu의 초기 버전에서 사용되던 시스템으로,
initctl
명령어를 사용하여 서비스 관리.
이 명령어들은 시스템의 다양한 서비스를 관리하고 모니터링하는 데 필수적이며, 각 명령어는 다양한 옵션을 제공하여 시스템 관리자의 요구에 맞게 사용할 수 있습니다.