systemctl과 service는 둘 다 리눅스에서 시스템 서비스를 관리하는 명령어이다.
먼저 service와 systemctl을 이해하기 위해서는 먼저 systemd에 대한 이해가 필요하다.
먼저 init process는 예전에 많이 사용했던 방식이다.
리눅스가 부팅시에 최초로 실행이되는 프로세스이다.
이 프로세스는 부팅시에 OS운영에 필요한 service을 실행을 시킨다.
1. systemd
리눅스가 부팅되면 제일 먼저 여러 프로그램과 서비스들이 올라온다.
예를 들면 네트워크, SSH 서버, 데이터베이스 등 OS운영을 하기 위해
이러한 서비스들이 자동으로 시작이 되면 시스템이 정상적으로 동작한다.
예전에는 주로 init,SysVinit, service 같은 방식으로 관리를 하였지만
점점 더 시스템이 복잡해지면서 빠르게 관리 할 필요가 생겼고,
그래서 지금 많은 사람들이 사용하는 것이 systemd이다.
즉 이러한 서비스들과 시스템의 전반적인것을 관리하는것이 systemd이라고 생각하면 될 것 같다.
조금 더 쉽게 말하면 service는 systemd가 관리하는 여러 대상들중에서 하나이다.
또한 점점 systemd로 이용방식이 바뀌어가면서 service의 실행 방식이 바뀌었다.
systemd의 장점은
- service 병렬 실행가능
- boot time감소
- 자동 의존성 관리 등이 있다.
systemd의 역할은 주로
- 부팅 과정 관리
- 서비스 시작/중지 관리
- 서비스 간 의존성 관리
- 자동 실행 관리
- 시스템 상태 추적 등이 있다.
2. service
리눅스가 부팅되었을 때 생성되어서 종료될 때까지 실행되는 프로세스 및 설정 파일을 service 라고 한다.
service는 /etc/systemd/system 경로에 존재한다.
service는 주로 서비스의 시작.중지.재시작,상태 확인을 하는데에 명령어를 사용한다
1. service {서비스 이름} start: 서비스 시작
2. service {서비스 이름} stop: 서비스 종료
3. service {서비스 이름} restart: 서비스 재시작
4. service {서비스 이름} condrestart: 서비스가 동작하고 있는 경우 재시작
5. service {서비스 이름} reload: 서비스 설정 reload
6. service {서비스 이름} status: 서비스 상태 확인
3. systemctl
systemctl은 systemd를 제어하는 명령어이다.
systemctl의 핵심은 서비스를 관리한다는거다.
예를 들어서
- SSH 서버를 켜고 싶다
- 웹 서버가 살아 있는지 보고 싶다
- 재부팅 후에도 자동 실행되게 하고 싶다
이런 상황일때 systemctl를 사용한다.
그러면 여기서 서비스가 무엇이냐.
- 서비스는 백그라운드에서 계속 동작을 하면서 특정 기능을 제공하는 프로그램이다.
예를 들면 sshd: 원격 접속을 제공하는것처럼 이러한 서비스들을 사용자가
매번 직접 실행을하지않아도 시스템이 알아서 부팅될 때 자동을 실행이되거나 필요할 때
제어를 할 수 있어야하는데 이런 제어를 systemctl가 한다.
또한 systemctl이 가장 많이 하는 일은
1. 서비스가 실행중인지 여부를 판단: systemctl status sshd
2. 서비스 실행: systemctl start sshd
3. 서비스 중지: systemctl stop sshd
4. 서비스 다시 시작: systemctl restart sshd
5. 다시 불러오기 reload 가 있다
'리눅스 공부' 카테고리의 다른 글
| KVM과 QEMU (1) | 2026.04.11 |
|---|---|
| 리눅스 프로그램 설치 방법과 빌드 개념 정리 (0) | 2026.04.09 |
| Vi 편집기 주요 명령어 정리 (0) | 2026.04.01 |
| Rocky Linux의 Mirror Server에 대하여 (0) | 2026.03.31 |
| Rocky Linux로 ssh서버 구축하기 (0) | 2026.03.24 |