데몬 프로세스
- 데몬(Daemon)은 리눅스의 백그라운드에서 동작하면서 특정한 서비스를 제공하는 프로세스를 의미
- 웹 서버나 데이터베이스 서버, 원격 접속 서버 등 각 종 서비스를 제공하는 프로세스들이 바로 데몬.
데몬의 동작 방식
|
- 데몬은 두 가지 동작방식. - 데몬 혼자 스스로 동작하는 동작형(standalone) - 데몬을 관리하는 슈퍼 데몬에 의해 동작하는 방식 - 독자형의 경우(standalone) 시스템의 백그라운드에서 항상 독작(자주 호출된느 데몬이 아니라면 시스템의 자원을 낭비할 우려) - 슈퍼 데몬의 경우, 평소에는 슈퍼 데몬만 동작하다가 서비스 용청이 오면 슈퍼 데몬이 해당 데몬을 동작시키는 것 - 슈퍼 데몬 같은 경우 독자형보다는 서비스에 응답하는 시간이 좀 더 걸릴 수 있지만, 자원을 효율적으로 사용하는 장점
|
슈퍼 데몬
|
- 데몬의 종류가 늘어나자 이를 관리하기 위한 슈퍼 데몬이 등장 - 유닉스에서 슈퍼 데몬의 이름은 'ineted' 였으나, 우분투에서는 보안 기능이 포함된 'xineted'를 사용 - 슈퍼 데몬은 네트워크 서비스를 제공하는 데몬만 관리 - 사용자가 네트워크 서비스를 요청하면 슈퍼 데몬이 이를 받아서 해당하는 서비스 데몬을 동작시키는 것
|
데몬의 조상 - 대부분의 데몬을 동작시키는 조상 데몬이 있음 - 'init' 과 '커널 쓰레드 데몬' 이 바로 그것
|
init 데몬 - init 데몬은 1번 프로세스이며 프로세스 대부분의 조상 프로세스 - 'pstree' 명령으로 프로세스들의 실행 구조를 확인해보면 'init'이 다른 데몬의 조상임을 확인할 수 있음 ====================================================================
sjw-lenovo@sjwlenovo-Lenovo-U310:~$ pstree init─┬─ModemManager───2*[{ModemManager}] ├─NetworkManager─┬─dhclient │ ├─dnsmasq │ └─3*[{NetworkManager}] ├─accounts-daemon───2*[{accounts-daemon}] ├─acpid ├─atd ├─bluetoothd ├─colord───2*[{colord}] ├─cron ├─cups-browsed ├─cupsd ├─dbus-daemon ├─6*[getty] ├─gnome-keyring-d───7*[{gnome-keyring-d}] ├─irqbalance ├─kerneloops ├─lightdm─┬─Xorg───2*[{Xorg}] │ ├─lightdm─┬─init─┬─at-spi-bus-laun─┬─dbus-daemon │ │ │ │ └─3*[{at-spi-bus-laun}] │ │ │ ├─at-spi2-registr───{at-spi2-registr} │ │ │ ├─bamfdaemon───3*[{bamfdaemon}] │ │ │ ├─dbus-daemon │ │ │ ├─dconf-service───2*[{dconf-service}] │ │ │ ├─evolution-calen───4*[{evolution-calen}] │ │ │ ├─evolution-sourc───2*[{evolution-sourc}] │ │ │ ├─firefox─┬─plugin-containe───15*[{plugin-conta+ │ │ │ │ └─56*[{firefox}] │ │ │ ├─gconfd-2 │ │ │ ├─gnome-session─┬─compiz───7*[{compiz}] │ │ │ │ ├─deja-dup-monito───2*[{deja-du+ │ │ │ │ ├─nautilus───3*[{nautilus}] │ │ │ │ ├─nm-applet───2*[{nm-applet}] │ │ │ │ ├─polkit-gnome-au───2*[{polkit-+ │ │ │ │ ├─telepathy-indic───2*[{telepat+ │ │ │ │ ├─unity-fallback-───3*[{unity-f+ │ │ │ │ ├─update-notifier───3*[{update-+ │ │ │ │ ├─zeitgeist-datah───6*[{zeitgei+ │ │ │ │ └─3*[{gnome-session}] │ │ │ ├─gnome-terminal─┬─bash───pstree │ │ │ │ ├─gnome-pty-helpe │ │ │ │ └─3*[{gnome-terminal}] │ │ │ ├─gvfs-afc-volume───2*[{gvfs-afc-volume}] │ │ │ ├─gvfs-gphoto2-vo───{gvfs-gphoto2-vo} │ │ │ ├─gvfs-mtp-volume───{gvfs-mtp-volume} │ │ │ ├─gvfs-udisks2-vo───2*[{gvfs-udisks2-vo}] │ │ │ ├─gvfsd───{gvfsd} │ │ │ ├─gvfsd-burn───{gvfsd-burn} │ │ │ ├─gvfsd-fuse───4*[{gvfsd-fuse}] │ │ │ ├─gvfsd-http───3*[{gvfsd-http}] │ │ │ ├─gvfsd-metadata───{gvfsd-metadata} │ │ │ ├─gvfsd-trash───2*[{gvfsd-trash}] │ │ │ ├─hud-service───3*[{hud-service}] │ │ │ ├─ibus-daemon─┬─ibus-dconf───3*[{ibus-dconf}] │ │ │ │ ├─ibus-engine-han───2*[{ibus-engi+ │ │ │ │ ├─ibus-engine-sim───2*[{ibus-engi+ │ │ │ │ ├─ibus-ui-gtk3───3*[{ibus-ui-gtk3+ │ │ │ │ └─2*[{ibus-daemon}] │ │ │ ├─ibus-x11───3*[{ibus-x11}] │ │ │ ├─indicator-appli───{indicator-appli} │ │ │ ├─indicator-bluet───2*[{indicator-bluet}] │ │ │ ├─indicator-datet───5*[{indicator-datet}] │ │ │ ├─indicator-keybo───3*[{indicator-keybo}] │ │ │ ├─indicator-messa───3*[{indicator-messa}] │ │ │ ├─indicator-power───2*[{indicator-power}] │ │ │ ├─indicator-print───2*[{indicator-print}] │ │ │ ├─indicator-sessi───2*[{indicator-sessi}] │ │ │ ├─indicator-sound───3*[{indicator-sound}] │ │ │ ├─mission-control───2*[{mission-control}] │ │ │ ├─notify-osd───2*[{notify-osd}] │ │ │ ├─pulseaudio───2*[{pulseaudio}] │ │ │ ├─unity-files-dae───7*[{unity-files-dae}] │ │ │ ├─unity-music-dae───2*[{unity-music-dae}] │ │ │ ├─unity-panel-ser───2*[{unity-panel-ser}] │ │ │ ├─unity-scope-hom───2*[{unity-scope-hom}] │ │ │ ├─unity-scope-loa───3*[{unity-scope-loa}] │ │ │ ├─unity-settings-─┬─syndaemon │ │ │ │ └─5*[{unity-settings-}] │ │ │ ├─unity-webapps-s───2*[{unity-webapps-s}] │ │ │ ├─2*[upstart-dbus-br] │ │ │ ├─upstart-event-b │ │ │ ├─upstart-file-br │ │ │ ├─vlc───10*[{vlc}] │ │ │ ├─window-stack-br │ │ │ ├─zeitgeist-daemo───{zeitgeist-daemo} │ │ │ └─zeitgeist-fts─┬─cat │ │ │ └─2*[{zeitgeist-fts}] │ │ └─{lightdm} │ └─2*[{lightdm}] ├─master─┬─pickup │ └─qmgr ├─polkitd───2*[{polkitd}] ├─rsyslogd───3*[{rsyslogd}] ├─rtkit-daemon───2*[{rtkit-daemon}] ├─systemd-logind ├─systemd-udevd ├─udisksd───5*[{udisksd}] ├─upowerd───2*[{upowerd}] ├─upstart-file-br ├─upstart-socket- ├─upstart-udev-br ├─whoopsie───2*[{whoopsie}] └─wpa_supplicant sjw-lenovo@sjwlenovo-Lenovo-U310:~$ ==================================================================== |
커널 쓰레드 데몬 - 커널의 일부분을 프로세스처럼 관리하는 데몬을 '커널 데몬'이라고 함. - ps 명령으로 확인시 대괄호( [ ] )로 둘러싸여 있는 프로세스들 - 예전에는 대부분 k로 시작했으나 요즘은 이를 반드시 준수하지 않음 - 커널 데몬은 대부분 입출력이나 메모리 관리, 디스크 동기화 등을 수행하며, 대체로 PID가 낮은 번호로 할당 - 일반 프로세스의 조상 데몬이 'init' 이라면, 커널 데몬을 동작시키는 조상 데몬은 '커널 쓰레드 데몬(kthreadd)' 임 - ps 명령으로 확인시 모든 커널의 데몬의 PPID가 2번임을 확인 가능. - PID 2번은 'kthreaddd' 데몬임. ==================================================================== sjw-lenovo@sjwlenovo-Lenovo-U310:~$ ps -ef | more UID PID PPID C STIME TTY TIME CMD root 1 0 0 13:13 ? 00:00:03 /sbin/init root 2 0 0 13:13 ? 00:00:00 [kthreadd] root 3 2 0 13:13 ? 00:00:03 [ksoftirqd/0] root 5 2 0 13:13 ? 00:00:00 [kworker/0:0H] root 7 2 0 13:13 ? 00:00:06 [rcu_sched] root 8 2 0 13:13 ? 00:00:02 [rcuos/0] root 9 2 0 13:13 ? 00:00:02 [rcuos/1] root 10 2 0 13:13 ? 00:00:02 [rcuos/2] root 11 2 0 13:13 ? 00:00:02 [rcuos/3] root 12 2 0 13:13 ? 00:00:00 [rcuos/4] root 13 2 0 13:13 ? 00:00:00 [rcuos/5] root 14 2 0 13:13 ? 00:00:00 [rcuos/6] root 15 2 0 13:13 ? 00:00:00 [rcuos/7] root 16 2 0 13:13 ? 00:00:00 [rcu_bh] root 17 2 0 13:13 ? 00:00:00 [rcuob/0] root 18 2 0 13:13 ? 00:00:00 [rcuob/1] root 19 2 0 13:13 ? 00:00:00 [rcuob/2] root 20 2 0 13:13 ? 00:00:00 [rcuob/3] root 21 2 0 13:13 ? 00:00:00 [rcuob/4] root 22 2 0 13:13 ? 00:00:00 [rcuob/5] root 23 2 0 13:13 ? 00:00:00 [rcuob/6] root 24 2 0 13:13 ? 00:00:00 [rcuob/7] --More--
====================================================================
|
|
|
데몬
|
기능
|
atd
|
특정 시간에 실행하도록 예약한 명령을 실행(at 명령으로 예약)
|
crond
|
주기적으로 실행하도록 예약한 명령을 실행
|
dhcpd
|
동적으로 IP주소를 부여할 수 있도록 하는 서비스를 제공
|
httpd
|
웹 서비스를 제공
|
lpd
|
프린트 서비스를 제공
|
nfs
|
네트워크 파일 시스템 서비스를 제공
|
named
|
DNS 서비스를 제공
|
sendmail
|
이메일 서비스를 제공
|
smtpd
|
메일 전송 데몬
|
popd
|
기본 편지함 서비스를 제공
|
routed
|
자동 IP 라우터 테이블 서비스를 제공
|
smb
|
삼바 서비스를 제공
|
syslogd
|
로그 기록 서비스를 제공 |
sshd
|
원격 보안 접속 서비스를 제공
|
in,telnetd
|
원격 접속 서비스를 제공
|
ftpd
|
파일 송수신 서비스를 제공
|
ntpd
|
시간 동기화 서비스를 제공
|