데몬 예제

Daemons는 모 프로세스가 항상 프로세스 를 나타내는 PID를 가진 모든 프로세스로 시스템에서 인식됩니다. init은 Linux 컴퓨터를 부팅할 때 시작되는 첫 번째 프로세스(예: 시작됨)이며 컴퓨터가 꺼져 있을 때까지 시스템에 남아 있습니다. init은 자식 프로세스의 상태를 기다리지 않고 부모 프로세스가 종료되는 모든 프로세스를 채택합니다. 따라서 데몬을 시작하는 일반적인 방법은 한 두 번 포크 (즉, 분할)를 포함하고, 부모 (및 조부모) 프로세스가 자녀 (또는 손자) 프로세스가 정상적인 기능을 수행하기 시작하는 동안 죽게하는 것을 포함한다. 시스템은 종종 일부 작업을 수행하여 네트워크 요청, 하드웨어 활동 또는 기타 프로그램에 응답하는 부팅 시 데몬을 시작합니다. cron과 같은 데몬은 예약된 시간에 정의된 작업을 수행할 수도 있습니다. 많은 사람들이 „데몬“이라는 단어와 „악마“라는 단어를 동일시하며, 이는 UNIX와 지하 세계 사이의 일종의 사탄적 연결을 암시합니다. 이것은 심각한 오해입니다. „데몬“은 실제로 훨씬 오래된 형태의 „악마“입니다.

데몬은 선이나 악에 대한 특별한 편견이 없으며, 오히려 사람의 성격이나 성격을 정의하는 데 도움이 됩니다. 고대 그리스인들이 „개인 데몬“이라는 개념은 „수호 천사“라는 현대개념과 비슷했다. 일반적으로 UNIX 시스템은 데몬과 악마 모두에 감염된 것처럼 보입니다. 또는 일부 데몬은 현재 작업 디렉터리를 모든 작업을 수행할 특정 위치로 변경할 수 있습니다. 예를 들어, 라인 프린터 스풀데몬은 작업 디렉토리를 스풀 디렉토리로 변경할 수 있습니다. Daemons는 백그라운드에서 작동하며 (일반적으로 …) TTY에 속하지 않기 때문에 stdout / stderr를 원하는 방식으로 사용할 수 없습니다. 일반적으로 syslog 데몬(syslogd)은 파일(디버그, 오류,…)에 메시지를 로깅하는 데 사용됩니다. 데몬이라는 용어는 그리스 신화의 데몬에서 유래되었으며, 이는 신과 필사자 사이에 순위를 매기고 특별한 지식과 힘을 소유한 초자연적인 존재였다1. 예를 들어, 소크레스는 그에게 경고와 조언을 준 데몬을 가지고 있다고 주장하지만, 결코 그를 따르도록 강요하지 않았다.

그는 또한 그의 데몬이 당시에 실행된 어떤 형태의 신화보다 더 높은 정확도를 보였다고 주장했다. syslogd 데몬은 세 가지 형태의 로그 메시지를 모두 읽습니다. 시작 시 이 데몬은 구성 파일(일반적으로 /etc/syslog.conf)을 읽으며, 이 파일은 서로 다른 종류의 메시지를 보낼 위치를 결정합니다. 예를 들어 긴급 메시지를 시스템 관리자에게 보내고(로그인한 경우) 콘솔에서 인쇄할 수 있지만 경고는 파일에 기록될 수 있습니다. 일부 데몬은 적절한 작업을 위해 한 번에 하나의 데몬 복사본만 실행되도록 구현됩니다. 이러한 종류의 데몬은 장치에 대한 단독 액세스가 필요할 수 있습니다. 예를 들어 cron daemon의 경우 여러 인스턴스가 실행 중인 경우 각 복사본이 예약된 단일 작업을 시작하려고 시도하여 중복 작업 및 오류가 발생할 수 있습니다. 이 예제에서는 httpd 데몬을 시작, 중지 및 다시 시작합니다: 데몬의 예를 작성하려면 컴퓨터 네트워크에 연결하는 데몬이 네트워크 서비스의 예입니다. 데몬(백그라운드 프로세스라고도 함)은 백그라운드에서 실행되는 Linux 또는 UNIX 프로그램입니다. 거의 모든 데몬에는 문자 „d“로 끝나는 이름이 있습니다. 예를 들어, 아파치 서버를 처리하는 데몬또는 SSH 원격 액세스 연결을 처리하는 sshd를 httpd.

리눅스는 종종 부팅 시간에 데몬을 시작합니다. /etc/init.d 디렉터리에 저장된 셸 스크립트는 데몬을 시작하고 중지하는 데 사용됩니다. 데몬은 시스템이 부트스트랩될 때 종종 시작되고 시스템이 종료될 때만 종료되는 프로세스입니다. 제어 터미널이 없기 때문에 백그라운드에서 실행됩니다. UNIX 시스템에는 일상적인 활동을 수행하는 수많은 데몬이 있습니다.