★ 데몬과 서비스
데몬 : 리눅스 환경에서 시스템이 초기화가 끝난 후, init 이라는 특별한 프로그램에 의해 자발적으로 백그라운드에서 실행 하는 프로그램을 의미
> 백그라운드에서 작동하는 프로세스
- 보통 syslogd, httpd 처럼 프로그램 이름 끝에 d가 붙음
데몬이 수행하는 작업
● 하드웨어 장치 관리
● 보조 기억장치와 디렉토리의 연결(마운트)
● 네트워크를 통한 프로세스간 통신(소켓)
● 애플리케이션 수준의 서비스 제공
★ 대표적인 데몬의 예 : 웹 서버(httpd)
- busybox : 각종 유틸리티를 담은 일종의 “스위스 군용 칼”과 같은 리눅스용 애플리케이션
# index.html라는 HTML 파일을 하나 만듭니다
$ echo "<html><body><h1>나의 첫 HTML 페이지</h1></body></html>" > index.html
# 웹 서버를 실행하고, 8888 포트를 통해 접속 가능하게 합니다
$ busybox httpd -h . -p 8888
# 웹 서버에 접속합니다
$ curl http://localhost:8888
<html><body><h1>나의 첫 HTML 페이지</h1></body></html>
# 프로세스 확인 명령을 통해 데몬이 실행중인지를 확인합니다
$ ps aux | grep httpd
ubuntu 2282 0.0 0.0 2040 80 ? Ss 18:39 0:00 busybox httpd -h ./wwwroot/ -p 8888
ubuntu 2287 0.0 0.1 6420 1832 pts/0 S+ 18:40 0:00 grep --color=auto httpd
# PID를 이용해 프로세스를 죽입니다
$ kill -9 2282
# 웹 서버에 다시 접속하면, 접속에 실패한 것을 확인할 수 있습니다
$ curl http://localhost:8888
curl: (7) Failed to connect to localhost port 8888 after 0 ms: Connection refused
★ 대표적인 데몬 : cron
- 스케쥴에 따라 명령을 실행하는 도구
● cron 실습
$ crontab -e
no crontab for ubuntu - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]: 1
* * * * * echo $(/bin/date) - $(/usr/bin/uptime) >> ~/uptime.log
> * * * * * - 매 분
crontab: installing new crontab
> 매 분마다 한 줄씩 늘어나는 uptime.log 파일이 한없이 커지지 않도록, 방금 만든 crontab을 삭제
$ crontab -r
$ crontab -l
no crontab for ubuntu
★ 데몬 확인하기
: systemctl : 데몬 목록 확인
: systemctl --type=service : 서비스 목록 확인
● systemctl - 명령기능
systemctl list-unit-files | 설치된 유닛(데몬)을 보여준다. |
systemctl enable <unit> | 부팅 시 유닛을 활성화한다. |
systemctl disable <unit> | 유닛이 부팅 시 비활성화된다. |
systemctl start <unit> | 유닛을 즉시 활성화시킨다. |
systemctl stop <unit> | 유닛을 즉시 비활성화한다. |
systemctl restart <unit> | 유닛을 즉시 재시작한다. |
systemctl status <unit> | 유닛의 상태와 최근 로그들을 조회한다. |
'DevOps BootCamp > Linux' 카테고리의 다른 글
Linux - 설치 및 네트워크 설정, user와 group 생성 및 삭제 (0) | 2024.04.15 |
---|---|
시스템 모니터링 (0) | 2023.03.14 |
프로세스 관리 (0) | 2023.03.13 |
관리자로서의 리눅스 (0) | 2023.03.10 |
출력 관련 명령어 (0) | 2023.03.10 |