developer tip

cronjob 대 리눅스의 데몬.

copycodes 2020. 12. 31. 22:14
반응형

cronjob 대 리눅스의 데몬. 언제 사용합니까?


프로세스가 터미널에서 분리되어 데몬 화되도록 만드는 이점이 있습니다. 그러나 cron 작업으로도 동일한 작업을 수행 할 수 있습니다. [그렇지 않다면 친절하게 정정 해주세요]

cronjob 또는 데몬 프로세스를 사용할 때 시나리오를 구별 할 수있는 최상의 요구 사항은 무엇입니까?


일반적으로 작업을 시간당 몇 번 이상 (10 분 미만) 실행해야하는 경우 데몬을 실행하는 것이 좋습니다.

항상 실행되는 데몬에는 다음과 같은 이점이 있습니다.

  • 분당 1보다 큰 주파수에서 실행할 수 있습니다.
  • 이전 실행의 상태를 더 쉽게 기억할 수 있으므로 프로그래밍이 더 간단 해지고 (상태를 기억해야하는 경우) 경우에 따라 효율성을 높일 수 있습니다.
  • 호스트가 많은 인프라에서는 "스탬프 무리"효과를 일으키지 않습니다.
  • 다중 호출을 더 쉽게 피할 수 있습니다 (아마도?).

그러나

  • 종료되는 경우 (예 : 오류 발생 후) 해당 기능을 구현하지 않는 한 자동으로 다시 시작되지 않습니다.
  • 유용한 일을하지 않아도 메모리를 사용합니다.
  • 메모리 누수는 더 많은 문제입니다.

일반적으로 견고성은 "cron"을 선호하고 성능은 데몬을 선호합니다. 그러나 많은 겹침 (둘 중 하나라도 괜찮을 것)과 반례가 있습니다. 정확한 시나리오에 따라 다릅니다.


cronjob과 데몬의 차이점은 실행 시간 프레임입니다.

cron 작업은 가끔 실행되는 였는지를합니다. cronjob의 예로는 가끔 임시 폴더의 내용을 제거하는 스크립트 나 매일 오전 9시에 여러 장치에 푸시 알림을 보내는 프로그램이 있습니다.

반면 데몬 프로세스가 사용자로부터 분리 실행이지만 끝까지 오면 다시 출시 될 실 거예요.


다른 사람이 영구적으로 사용할 수있는 서비스가 필요한 경우 데몬을 실행해야합니다. 이 작업은 상당히 복잡한 프로그래밍 작업입니다. 데몬은 영구적으로 (예 : 소켓 또는 TCP 포트를 수신하여) 세상과 통신 할 수 있어야하고, 유출 또는 유출없이 각 작업을 깔끔하게 처리하도록 작성해야하기 때문입니다. 오랜 시간 동안 리소스를 잠그기도합니다.

반대로 설명이 충분히 미리 결정될 수 있고 추가 정보없이 자동으로 작동 할 수 있고 독립적 인 특정 작업이있는 경우 작업을 주기적으로 실행하는 크론 작업을 갖는 것으로 충분할 수 있습니다. . 제한된 시간 동안 한 번만 실행 된 다음 종료되는 프로그램이 필요하기 때문에 설계하기가 훨씬 간단합니다.

간단히 말해서 데몬은 영원히 실행되는 단일 프로세스입니다. 크론 작업은 주기적으로 새로운 단기 프로세스를 시작하는 메커니즘입니다.


데몬은 상태 캐싱, 디스크 쓰기 지연 또는 클라이언트와의 장기간 세션 참여를 통해 수명을 활용할 수 있습니다.

데몬은 시간이 지남에 따라 누적되어 문제를 일으킬 가능성이 있으므로 메모리 누수가 없어야합니다.

참조 URL : https://stackoverflow.com/questions/12975495/cronjob-vs-daemon-in-linux-when-to-use

반응형