1) 데몬의 종류
데몬이란 시스템에 백그라운드 모드로 수행중이며 어떤 사건, 즉 이벤트를 기다리거나 주기적으로 주어진 작업을 수행하기 위하여 대기하고 있는 프로세스를 의미한다. 일반적으로 데몬프로세스는 이름끝에 'd'자가 붙는다.
기본적으로 리눅스에는 여러 기능과 서비스를 제공하기 위한 다양한 데몬 프로세스들이 시스템에서 돌아가고 있다.
이런 서비스 데몬들의 실행여부는 레드햇 리눅스 계열에서 ntsysv 커맨드로 조정하면 된다. 리눅스상에서 현재 실행되고 있는 데몬의 현황을 보려면 pstree 커맨드를 쓴다.
데몬의 실행방식은 크게 stand-alone방식과 xinetd(슈퍼데몬)방식이 있다.
# Stand-alone방식
(말뚝보초처럼 항상실행대기)
이 방식의 데몬들은 데몬이 시작되면 말 그대로 자기 스스로 시스템에서 상주하며 클라이언트 요청에 응답을 보내주는 방식으로 보통 아파치 데몬처럼 클라이언트의 요청이 잦은 데몬들이 이런 방식으로 실행된다. 스탠드 얼론방식의 데몬을 확인하려면 쉘상에서 pstree 명령을 내리면 데몬들을 트리형식으로 보여준다. 스탠드 얼론 방식의 데몬들은 xinetd방식보다는 클라이언트 요청에 신속하게 대응한다는 장점은 있으나 이런 스탠드 얼론 데몬들이 시스템에서 많이 생성되게되면 시스템의 자원낭비가 심해지게 되고 퍼포먼스도 떨어지게 된다.
# inetd방식
(클라이언트 요청이 있을때만 실행)
스탠트 얼론처럼 자기 스스로 독립적으로 시스템에 실행되는게아니라 xinetd라는 수퍼데몬이 시스템에서 대기하고 있다고 클라이언트 요청이 들어오면 xinetd데몬에 의해 해당 서비스를 제공해줄 데몬을 실행시키는 방식이다. telnet이나 ftp같이 비교적 클라이언트 요청의 빈도가 낮은 서비스들은 이런 xinetd데몬이 시스템 활용측면에서는 유리하다. 또한 tcp wrapper를 써서 보안을 손쉽게 설정할 수 있는 것도 장점이다. 그러나 전술한 아파치 데몬같이 클라이언트의 자잘한 요청이 많은 서비스에 대해서는 inetd방식이 시스템효율을 도리어 떨어드리게된다. xinetd데몬은 스탠드 얼론방식으로 실행되는 슈퍼데몬이며 서비스 요청시 xinetd데몬의 차일드 프로세스로 다른 데몬이 실행된다. 이를 확인하려면 pstree로 xinetd데몬을 확인하고 다른 한텀창에서 telnet이나 ftp로 자신의 호스트에 접속해보라. 그럼 xinetd데몬에서 차일드 프로세스로 해당 데몬이 실행되는 것을 확인할 수 있다.
2) /etc/rc.d/init.d/ 데몬 설명
/etc/rc.d/init.d/autofs
오토마운트 파일시스템(Automount Filesystem) 데몬 스크립트입니다. 파일시스템 사용을 요구받았을 경우에는 마운트를 하고 파일시스템 사용이 끝났을 경우에는 마운트를 해제하게 됩니다.
/etc/rc.d/init.d/crond
cron 데몬 스크립트입니다. 여러분들께서도 잘 아시는 바와 같이 cron은 특정한 시간에 지정된 작업을 주기적으로 하도록 하는 리눅스 작업관리자 데몬입니다. 이런 cron데몬을 시작, 재시작 또는 종료시키는 스크립트입니다.
/etc/rc.d/init.d/functions
리눅스 시스템의 /etc/rc.d/init.d/디렉토리내의 거의 모든 쉘 스크립트에서 사용되어지는 함수를 내장하고 있는 파일입니다.
/etc/rc.d/init.d/gpm
GPM은 Midnight Commander와 같은 텍스트기반의 리눅스 어플리케이션에서 마우스의 복사 및 붙이기 기능과 콘솔상에서의 마우스 팝업기능을 제공하기 위한 데몬입니다.
/etc/rc.d/init.d/halt
halt는 시스템이 런레벨(runlevel) 0또는 런레벨(runlevel)6로 실행이 될 때에 init 프로세스에 의해 실행되는 스크립트로서 현재 시스템에 실행된 모든 프로세스를 죽이고 모든 파일시스템의 마운트를 해제한 후에 시스템을 종료(halt)시키거나 재부팅(reboot)합니다.
/etc/rc.d/init.d/iptables
iptables는 /etc/sysconfig/iptables에 미리 정의된 룰에 따라서 리눅스 서버의 방화벽을 실행 및 중지하기 위한 스크립트입니다. 즉, iptables로 구현하는 패킷필터링(packet filtering)방화벽입니다.
/etc/rc.d/init.d/irda
IrDA (Infrared Data Association)데몬 스크립트로서 IrDA는 무선통신, 적외선 통신을 위한 산업표준입니다. IrDA는 최근 거의 모든 장치들(laptops, LAN아답터, PDA, 프린터, 휴대폰등)에 사용될 수 있으며 9600bps에서 4Mbps의 속도범위를 가집니다.
/etc/rc.d/init.d/isdn
isdn 서비스를 시작하거나 종료하는 스크립트입니다.
/etc/rc.d/init.d/kdcrotate
/etc/krb5.conf에 정의되어 있는 KDC 리스트를 회전시키는 스크립트입니다.
/etc/rc.d/init.d/killall
현재 실행중인 서비스들을 대상으로 모두 중지시키는 스크립트입니다. 따라서 이 스크립트는 주로 시스템을 중지하거나 재시작할 때에 실행되는 스크립트입니다.
/etc/rc.d/init.d/kudzu
kudzu데몬은 새로운 하드웨어나 또는 변경된 하드웨어를 조사하여 설정하는 데몬입니다. 또한 kudzu데몬은 현재의 하드웨어 정보와 /etc/sysconfig/hwconf에 저장해 하드웨어 정보를 비교하여 변경된 하드웨어 또는 해로운 하드웨어가 존재하는가를 알아냅니다.
즉, 시스템 하드웨어의 변경 또는 새로운 하드웨어의 추가장착등과 같은 하드웨어에 대해 조사하는 kudzu데몬을 시작시키거나 종료하는 스크립트입니다.
/etc/rc.d/init.d/netfs
Network Filesystem(NFS)와 SMB(Lan Manager/Windows ), NCP(NetWare)를 마운트 시키거나 마운트 해제하는 데몬 스크립트입니다.
/etc/rc.d/init.d/network
리눅스 서버의 통신을 가능하도록 하기 위하여 관련 파일에 설정되어 있는대로 네트워크 설정을 하거나 중단하는 스크립트입니다.
/etc/rc.d/init.d/nfs
NFS 서비스 데몬을 시작(종료, 재시작)하는 스크립트입니다. NFS는 TCP/IP 네트워크상에서 파일공유를 위해 많이 사용되고있는 프로토콜입니다. 이 스크립트로 NFS서비스를 실행하면 /etc/exports파일의 설정대로 NFS서버기능을 할 수 있도록 설정합니다.
/etc/rc.d/init.d/nfslock
NFS파일 락킹서비스를 시작(종료,재시작)하는 스크립트입니다.
/etc/rc.d/init.d/nscd
네임서비스 캐쉬데몬(Name Service cache Daemon)을 시작하는 스크립트입니다. NSCD데몬은 가장일반적인 네임서비스에 대한 캐쉬기능을 제공하는 데몬으로서 /etc/passwd, /etc/group, /etc/hosts파일등에 대한 캐쉬정보를 가지고 있습니다. NSCD데몬의 설정파일은 /etc/nscd.conf입니다.
/etc/rc.d/init.d/pcmcia
pcmcia 데몬을 시작(종료)하기 위한 스크립트입니다. PCMCIA는 일반적으로 노트북등에서 사용되는 장치(모뎀, 이더넷등)를 지원하기 위한 것입니다.
/etc/rc.d/init.d/portmap
RPM 포트맵퍼(portmap daemon)을 시작(종료)하는 스크립트입니다. 일명 포터맵퍼(portmapper)라고 합니다. 이 portmapper는 NFS와 NIS 등과 같은 프로토콜이 사용되는 RPC연결을 제어하는 역할을 합니다. 따라서 이 portmapper는 RPC매카니즘을 사용하는 프로토콜이 탑재되어있어 서버로 사용되는 시스템에서는 반드시 실행되어있어야 합니다.
/etc/rc.d/init.d/random
리눅스 시스템에서의 난수사용을 위하여 난수발생데몬인 random을 시작시킵니다.
/etc/rc.d/init.d/rawdevices
하드드라이브 파티션과 같은 블록장치에 rawdevice를 할당하는 스크립트입니다. 잘아시는 Oracle과 같은 어플리케이션에서 사용될 수 있습니다. /etc/sysconfig/rawdevices파일을 수정, 편집함으로써 rawdevice에 블록장치매핑과 할당을 할 수 있습니다.
/etc/rc.d/init.d/single
시스템 실행레벨(runlevel) 1로 가고자 할 때 사용하는 스크립트입니다. 이 스크립트가 실행되면 시스템의 모든 프로세스들을 죽인 다음 시스템을 실행레벨 1상태로 만들어 줍니다. 실행레벨 1상태는 관리자(root) 전용모드입니다.
/etc/rc.d/init.d/sshd
sshd라는 OpenSSH서버데몬을 실행(중지)하는 스크립트입니다. telnet과는 달리 ssh는 암호화하여 통신을 하기 때문에 보안을 위한 통신방법으로 주로 사용됩니다. Telnet처럼 원격서버 로그인을 하는 ssh를 사용하려면 sshd데몬이 실행되어 있어야합니다. 이 스크립트는 sshd데몬을 실행시켜주는 스크립트입니다. 참고로 ssh는 TCP 22번과 UDP 22번을 사용합니다.
/etc/rc.d/init.d/syslog
syslog는 리눅스 시스템의 필수적인 로깅시스템입니다. 이런 로깅시스템을 시작(종료)하는 스크립트입니다. 이 스크립트에 의해 로깅시스템의 데몬인 syslogd가 실행되면 /etc/syslog.conf파일을 참조하여 각 설정에 해당하는 조건이 되면 지정된 로그파일에 로그메시지를 기록합니다. 로그파일이 기록되는 디렉토리는 /var/log/이며 대표적인 로그파일로는 /var/log/messages, /var/log/secure, 그리고 /var/log/maillog등이 있습니다. 이 스크립트에 의해 실행되는 데몬은 /sbin/syslogd와 /sbin/klogd가 있습니다.
/sbin/syslogd는 로깅시스템의 주된 그리고 일반적인 로그메시지를 기록하는 주데몬이며 klogd는 커널메시지를 기록하는 커널로그데몬입니다. 그리고 서버의 로그메시지를 원격서버에 실시간으로 저장하고자 한다면 syslogd데몬 실행시에 -r옵션을 사용하여 실행하시기 바랍니다. 참고로 syslogd는 UDP 514번을 사용합니다.
/etc/rc.d/init.d/xinetd
리눅스 서버의 인터넷 수퍼데몬인 XINETD데몬을 실행시키거나 중지시키는 데몬입니다. Xinetd는 TCP_Wrapper와 함께 사용되며 대부분의 인터넷 서비스들을 관장하며 telnet이나 ftp등과 같은 특정 서비스요청을 사용자프로세스와 서비스데몬을 연결시켜주는 역할을 합니다.
/etc/rc.d/init.d/ypbind
NIS/YP 클라이언트 시스템에서 실행되는 데몬으로서 NIS 도메인(domain)에 바인드시키는 역할을 합니다. NIS클라이언트에서 수행되기 위하여 반드시 glibc 기반 시스템에서 실행되어야합니다. 하지만 NIS를 사용하지 않는 시스템에서 실행되어져서는 안됩니다.
'OS > LINUX' 카테고리의 다른 글
Linux서버에 Memcached 설치/실행 하기 (0) | 2011.06.09 |
---|---|
리눅스의 런레벨(Run level) (0) | 2011.06.09 |
[/etc/rc.d/init.d/*] 데몬 실행 스크립트의 이해 (0) | 2011.06.09 |
/dev/null 다시 만들기 (0) | 2011.06.04 |
/dev/zero와 /dev/null (0) | 2011.06.04 |