리눅스에서 서비스(daemon)를 관리하는 방법은?
_____A1: 서비스(또는 데몬)는 시스템 부팅 시 자동으로 시작되어 백그라운드에서 실행되는 프로세스입니다. 서버, 네트워크, 데몬 프로세스 등이 이에 해당하며, 사용자 인터랙션 없이 지속적으로 특정 작업을 수행합니다.
Q2: 리눅스에서 어떤 도구로 서비스를 관리하나요?
A2: 주로 systemd(systemctl 명령어), SysV init(service 명령어), Upstart(사용 빈도 감소) 등이 있습니다. 최신 배포판 대부분은 systemd를 사용합니다.
Q3: 서비스 상태를 확인하려면 어떻게 하나요?
A3: systemd가 기본인 경우:
```
systemctl status 서비스명
```
예:
```
systemctl status apache2
```
Q4: 서비스를 시작, 중지, 재시작하려면?
A4:
- 시작:
```
sudo systemctl start 서비스명
```
- 중지:
```
sudo systemctl stop 서비스명
```
- 재시작:
```
sudo systemctl restart 서비스명
```
예:
```
sudo systemctl start nginx
```
Q5: 서비스가 부팅 시 자동으로 시작되게 하려면 어떻게 하나요?
A5:
자동 시작 활성화:
```
sudo systemctl enable 서비스명
```
자동 시작 비활성화:
```
sudo systemctl disable 서비스명
```
Q6: 서비스 로그를 확인하려면?
A6: systemd 기반 시스템에서는 journalctl 명령어를 사용합니다.
```
sudo journalctl -u 서비스명
```
최근 로그만 보려면:
```
sudo journalctl -u 서비스명 -n 50
```
Q7: SysV init 기반 시스템에서 서비스 관리는 어떻게 하나요?
A7:
- 상태 확인:
```
service 서비스명 status
```
- 시작:
```
sudo service 서비스명 start
```
- 중지:
```
sudo service 서비스명 stop
```
- 재시작:
sudo service 서비스명 restart
```
SysV init 스크립트는 /etc/init.d/에 위치합니다.
Q8: service 명령어와 systemctl 명령어 차이는 무엇인가요?
A8: service 명령어는 SysV init 시스템용으로 주로 오래된 배포판에서 사용되며, systemctl은 systemd를 사용하는 최신 시스템에서 서비스를 관리하는 표준 도구입니다.
Q9: 서비스 단위 파일(unit file)이란 무엇인가요?
A9: systemd에서 서비스 구성 정보를 담은 설정 파일로, 일반적으로 /etc/systemd/system/ 또는 /lib/systemd/system/에 위치하며, 서비스 동작 방식, 실행 경로, 의존성 등을 정의합니다.
Q10: 사용자 정의 서비스를 등록하려면 어떻게 하나요?
A10:
1. /etc/systemd/system/에 .service 파일을 생성합니다.
2. 서비스 내용을 작성합니다. 예:
```
[Unit]
Description=My Custom Service
After=network.target
[Service]
ExecStart=/usr/bin/myservice
Restart=on-failure
[Install]
WantedBy=multi-user.target
```
3. 설정 저장 후 systemd에 리로드:
```
sudo systemctl daemon-reload
```
4. 서비스 시작 및 자동 시작 설정:
```
sudo systemctl start myservice
sudo systemctl enable myservice
```
Q11: 서비스 우선순위를 조정하려면 어떻게 하나요?
A11: systemd 서비스 단위 파일의 [Unit] 섹션에서 After=, Before= 옵션과, [Install] 섹션의 WantedBy= 등을 통해 서비스 시작 순서를 정의할 수 있습니다.
Q12: 서비스 실행 중 로그 레벨을 변경할 수 있나요?
A12: 네, 서비스 실행 명령어(ExecStart)나 환경변수 설정 등을 통해 로그 레벨을 조정할 수 있습니다. 또한, 일부 서비스는 별도의 설정 파일에서 로그 레벨을 변경합니다.
Q13: 서비스가 정상적으로 시작하지 않을 때 어떻게 진단하나요?
A13:
- 로그 확인:
```
sudo journalctl -u 서비스명 -xe
```
- 서비스 상태 상세 확인:
```
systemctl status 서비스명
```
- 서비스 단위 파일 문법 오류 확인:
```
systemd-analyze verify /etc/systemd/system/서비스명.service
```
Q14: 서비스 단위 파일 수정을 적용하려면 어떻게 하나요?
A14: 단위 파일 수정 후 systemd 데몬을 리로드해야 적용됩니다.
```
sudo systemctl daemon-reload
```
이후 서비스를 재시작합니다.
Q15: 서비스 종속성(의존성)은 어떻게 설정하나요?
A15: service 단위 파일의 [Unit] 섹션에 Requires=, Wants=, After=, Before= 옵션으로 다른 서비스와의 의존성을 정할 수 있습니다.
---
위 내용들을 숙지하면 리눅스에서 서비스(데몬)를 손쉽게 관리할 수 있습니다.
작성자:
김지훈 [비회원]
| 작성일자: 1년 전
2024-09-30 08:49:30
조회수: 149 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 149 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.