systemctl 서비스 관리
쉽게 말하면
서버에는 웹 서비스처럼 뒤에서 계속 도는 프로그램(서비스)이 많아요. systemctl은 이것들을 지금 켜고(start) 끄고(stop), 컴퓨터를 켤 때마다 자동으로 켜질지(enable) 정하고, 잘 돌고 있는지(status) 확인하는 리모컨이에요.
시험용 정의
systemctl은 systemd의 서비스(유닛)를 관리하는 명령이다. 서비스를 시작·중지·재시작하고, 부팅 시 자동 시작 여부를 정하고, 상태와 로그를 확인한다. 예전의 service·chkconfig 명령을 대신한다.
비유로 이해하기
가게 직원 관리표다. start는 "지금 출근", enable은 "매일 아침 자동 출근 명단에 올리기", status는 "지금 근무 중인지 확인"이다.
자세히
서비스와 데몬
데몬은 사용자와 직접 대화하지 않고 뒤에서 계속 돌며 요청을 기다리는 프로그램이다. 웹 서버(httpd), 원격 접속 서버(sshd), 작업 예약(crond)처럼 이름 끝에 d(daemon)가 붙는 경우가 많다. systemd는 이런 데몬 하나하나를 서비스 유닛(.service 파일)으로 등록해 관리한다.
서비스에는 두 가지 상태가 따로 있다. 지금 돌고 있는가(active/inactive: start·stop이 바꿈)와 부팅할 때 자동으로 켜지는가(enabled/disabled: enable·disable이 바꿈). 둘은 서로 독립이라, start만 하면 재부팅 뒤 꺼져 있고 enable만 하면 지금은 꺼진 채 다음 부팅부터 켜진다.
주요 명령
| 명령 | 뜻 |
|---|---|
| start / stop | 지금 시작 / 중지 |
| restart | 중지 후 다시 시작 |
| reload | 프로세스를 유지한 채 설정만 다시 읽기 |
| status | 상태·최근 로그 |
| enable / disable | 부팅 시 자동 시작 등록 / 해제 |
| enable --now | 등록 + 지금 시작 |
| is-active / is-enabled | 실행 중인지 / 등록됐는지 한 단어로 |
| mask / unmask | 아예 시작할 수 없게 막기 / 풀기 |
| list-units --type=service | 로드된 서비스 목록 |
| list-unit-files | 모든 유닛 파일과 enable 상태 |
| daemon-reload | 유닛 파일을 고친 뒤 다시 읽기 |
유닛 파일 위치와 옛 명령
패키지가 설치한 유닛: /usr/lib/systemd/system/, 관리자가 만들거나 덮어쓰는 유닛: /etc/systemd/system/(우선). 유닛 종류: .service, .target, .mount, .socket, .timer.
옛 명령: service httpd start ↔ systemctl start httpd, chkconfig httpd on ↔ systemctl enable httpd, chkconfig --list ↔ systemctl list-unit-files.
시험에 이렇게 나와요
- 서비스 시작·중지·재시작·상태 → systemctl start|stop|restart|status
- 부팅 시 자동 시작 → enable, 끄기 → disable, 목록 → list-units
1차 출제기준 · 공개 기출 없음
확인 문제
Q1. 웹 서버(httpd)를 지금 켰는데, 재부팅 후에도 자동으로 켜지게 하려면 추가로 무엇을 해야 할까?
- systemctl reload httpd
- 아무것도 안 해도 된다
- systemctl enable httpd
- systemctl restart httpd
정답 보기
3번 systemctl enable httpd
start는 지금 켜는 것이고, enable은 부팅 때 자동으로 켜지게 등록하는 것이다. 둘은 별개다. 한 번에 하려면 systemctl enable --now httpd.
Q2. 부팅할 때 서비스가 자동으로 시작되게 하는 명령은?
- systemctl start
- systemctl status
- systemctl reload
- systemctl enable
정답 보기
4번 systemctl enable
systemctl enable이다. 다음 부팅부터 자동으로 시작되게 한다. start는 지금 바로 한 번 시작할 뿐이다.
Q3. 서비스를 중지하지 않고 설정 파일만 다시 읽게 하는 명령은?
- reload
- reset
- refresh
- restart
정답 보기
1번 reload
reload다. 서비스를 멈추지 않고 설정만 다시 읽는다. restart는 멈췄다가 다시 시작한다.
Q4. chkconfig httpd on과 같은 기능의 systemd 명령은?
- systemctl on httpd
- systemctl start httpd
- systemctl enable httpd
- service httpd enable
정답 보기
3번 systemctl enable httpd
systemctl enable httpd다. chkconfig on은 예전 방식으로 부팅 때 자동 시작을 켜는 명령이고, systemd에서는 enable이 같은 일을 한다.
Q5. 유닛 파일을 수정한 뒤 systemd가 변경 내용을 읽게 하는 명령은?
- systemctl reset
- systemctl daemon-reload
- systemctl reexec
- systemctl reload
정답 보기
2번 systemctl daemon-reload
systemctl daemon-reload다. systemd가 유닛 파일을 다시 읽는다. systemctl reload는 서비스 하나의 설정을 다시 읽게 한다.
헷갈리기 쉬운 O·X
systemctl start로 시작한 서비스는 재부팅 후에도 자동으로 시작된다.
정답 보기
X 자동 시작은 enable.
mask된 서비스는 다른 서비스가 의존해도 시작되지 않는다.
정답 보기
O 맞는 설명이다.
/etc/systemd/system/의 유닛 파일이 /usr/lib/systemd/system/보다 우선한다.
정답 보기
O 맞는 설명이다.