데몬과 정상 실행 프로세스의 차이점은 무엇입니까?

라훌 구사이

Linux 기반 임베디드 시스템을 위해 Python에서 다양한 서비스를 구현했습니다. 시스템이 부팅되는 즉시 영구적으로 실행해야하는 드라이버 서비스가 하나 있습니다. 다른 서비스를 적시에 하위 프로세스로 생성하고이 부분을 계속 반복합니다. 내가 달성하고자하는 주요 목표는 시스템이 종료되지 않는 한이 드라이버 서비스가 절대 중지되지 않아야한다는 것입니다. 다음과 같은 옵션이 있습니다.

  • 이 서비스를 시스템 데몬으로 만들고 지속적으로 실행하려면
  • 이 서비스를 정상적인 프로세스로 시작하고 계속 실행하려면

어떤 옵션을 선택해야하며 그 이유는 무엇입니까? 또한 두 접근법의 근본적인 차이점은 무엇입니까?

조형

먼저 질문 제목을 다룰 것입니다. 데몬과 정상 실행 프로세스의 차이점은 "정상 프로세스"라고 말할 때 대부분의 경우 텍스트 터미널과 같은 사용자 입력 / 출력 API에 연결된 것을 의미한다는 것입니다 ( 일반적으로 파일 설명자 테이블에서 처음 3 개의 파일 설명자를 열고 일종의 가상 터미널에 연결하거나 그래픽 사용자 인터페이스 (Linux 및 UNIX에서 일반적으로 X11 프로토콜을 사용함)를 사용합니다. 반면 데몬은 종종 터미널에서 분리되었거나 처음에 하나에 연결되지 않은 프로세스를 나타냅니다.

질문 자체에 관해서는 데몬으로 실행하거나 "일반 프로세스"로 실행할 때 응용 프로그램이 충돌 할 수 있으며 다시 시작해야합니다. 프로세스가 일부 사용자 터미널에 연결되면 사용자는 오류를 감지하고 응용 프로그램을 다시 시작할 수 있지만 데몬은 일반적으로 해당 기능을 즐기지 못합니다. 데몬이 터미널에서 연결이 끊어지면 해당 프로세스를 감지하기가 훨씬 더 어려워집니다. 프로세스가 충돌했습니다.

이 문제를 해결하기 위해 우리는 서비스 관리 프레임 워크를 발명했습니다. SysV, SystemD, Upstart, Supervisord, runit 등 다양한 기능을 가진 다양한 구현이 있습니다. 그들은 모두 매우 중요한 기능을 공유합니다. 데몬을 시작할 수있는 방법이 있습니다 (종종 부팅시 자동으로) 실패 할 때까지 모니터링 한 다음 다시 시작합니다.

서비스 관리 프레임 워크를 사용하여 장치 드라이버 서비스를 실행해야합니까? 당신은 가장 확실히해야합니다-그것은 유일한 건전한 방법입니다.

사용할 서비스 관리 소프트웨어는 더 어려운 질문입니다. 일반적으로 가장 좋은 선택은 운영 체제가 번들로 제공하는 서비스 관리 소프트웨어를 사용하는 것입니다. 일반적으로이 소프트웨어는 프로세스 ID 0으로 실행되고 커널에 의해 직접 시작됩니다. 현재 최신 Linux 기반 운영 체제에서 가장 눈에 띄는 소프트웨어는 풍부한 종속성 관리 언어, 소켓 활성화, 타이머, 네트워크 및 스토리지 관리 등과 같은 많은 기능을 제공하는 SystemD입니다. AFAIK, 임베디드 Linux 운영 체제에서 이것은 자주 발생하지 않으며 임베디드 시스템이 실패한 서비스를 다시 시작하는 데 그다지 좋지 않은 클래식 SysV를 사용하고있을 가능성이 높습니다 (또는이를 전혀 수행하지 않는 경우가 많음). 스크립트 "와 대부분의 구현은 어떤 종류의 재시작도 수행하지 않습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

시작-중지-데몬과 &로 실행하는 것의 차이점은 무엇입니까?

분류에서Dev

프로그램을 데몬으로 실행하는 것과 '&'로 백그라운드로 포크하는 것의 차이점은 무엇입니까?

분류에서Dev

mke2fs 실행과 cfdisk에서 FS 유형 설정의 차이점은 무엇입니까?

분류에서Dev

전송 데몬과 서비스 전송 데몬의 차이점은 무엇입니까?

분류에서Dev

전송 데몬과 서비스 전송 데몬의 차이점은 무엇입니까?

분류에서Dev

소프트웨어 BOT, "항상 실행되는 실행 파일"과 소프트웨어 서버의 차이점은 무엇입니까?

분류에서Dev

"서브 쉘"과 "하위 프로세스"의 정확한 차이점은 무엇입니까?

분류에서Dev

ansible과 ansible-playbook 명령 실행의 차이점은 무엇입니까?

분류에서Dev

데몬, 서비스 및 프로세스의 기술적 차이점은 무엇입니까?

분류에서Dev

데몬, 서비스 및 프로세스의 기술적 차이점은 무엇입니까?

분류에서Dev

안정과 마스터의 차이점은 무엇입니까?

분류에서Dev

다형성과 상속의 차이점은 무엇입니까

분류에서Dev

다형성과 상속의 차이점은 무엇입니까

분류에서Dev

m과 g 수정 자의 차이점은 무엇입니까?

분류에서Dev

skype 정적과 동적의 차이점은 무엇입니까?

분류에서Dev

NSURLConnection과 NSUrlSession의 정확한 차이점은 무엇입니까?

분류에서Dev

CompareAndSet과 IncrementAndGet의 진정한 차이점은 무엇입니까?

분류에서Dev

npm 명령으로 실행되는 프로세스 간의 차이점은 무엇입니까?

분류에서Dev

프로세스 그룹과 작업의 차이점은 무엇입니까?

분류에서Dev

작업과 프로세스의 차이점은 무엇입니까?

분류에서Dev

"dnf 히스토리 롤백"과 "dnf 히스토리 실행 취소"의 차이점은 무엇입니까?

분류에서Dev

소싱 ( '.'또는 '소스')과 bash에서 파일 실행의 차이점은 무엇입니까?

분류에서Dev

원시 쿼리 실행과 스파크 SQL 쿼리의 차이점은 무엇입니까?

분류에서Dev

콘솔과 젠킨스에서 Maven 목표를 실행하는 것의 차이점은 무엇입니까

분류에서Dev

Bash 스크립트를 실행하는 것과 소싱하는 것의 차이점은 무엇입니까?

분류에서Dev

subprocess.Popen () 사용과 수동으로 쉘에서 명령 실행의 차이점은 무엇입니까?

분류에서Dev

Java 프로세스의 실제 실행 시간을 측정하는 방법은 무엇입니까?

분류에서Dev

Windows의 백그라운드에서 Apache에 대한 httpd 데몬 프로세스를 실행하는 방법은 무엇입니까?

분류에서Dev

@powershell과 powershell (앞에 @이있는 명령)을 실행하는 것의 차이점은 무엇입니까?

Related 관련 기사

  1. 1

    시작-중지-데몬과 &로 실행하는 것의 차이점은 무엇입니까?

  2. 2

    프로그램을 데몬으로 실행하는 것과 '&'로 백그라운드로 포크하는 것의 차이점은 무엇입니까?

  3. 3

    mke2fs 실행과 cfdisk에서 FS 유형 설정의 차이점은 무엇입니까?

  4. 4

    전송 데몬과 서비스 전송 데몬의 차이점은 무엇입니까?

  5. 5

    전송 데몬과 서비스 전송 데몬의 차이점은 무엇입니까?

  6. 6

    소프트웨어 BOT, "항상 실행되는 실행 파일"과 소프트웨어 서버의 차이점은 무엇입니까?

  7. 7

    "서브 쉘"과 "하위 프로세스"의 정확한 차이점은 무엇입니까?

  8. 8

    ansible과 ansible-playbook 명령 실행의 차이점은 무엇입니까?

  9. 9

    데몬, 서비스 및 프로세스의 기술적 차이점은 무엇입니까?

  10. 10

    데몬, 서비스 및 프로세스의 기술적 차이점은 무엇입니까?

  11. 11

    안정과 마스터의 차이점은 무엇입니까?

  12. 12

    다형성과 상속의 차이점은 무엇입니까

  13. 13

    다형성과 상속의 차이점은 무엇입니까

  14. 14

    m과 g 수정 자의 차이점은 무엇입니까?

  15. 15

    skype 정적과 동적의 차이점은 무엇입니까?

  16. 16

    NSURLConnection과 NSUrlSession의 정확한 차이점은 무엇입니까?

  17. 17

    CompareAndSet과 IncrementAndGet의 진정한 차이점은 무엇입니까?

  18. 18

    npm 명령으로 실행되는 프로세스 간의 차이점은 무엇입니까?

  19. 19

    프로세스 그룹과 작업의 차이점은 무엇입니까?

  20. 20

    작업과 프로세스의 차이점은 무엇입니까?

  21. 21

    "dnf 히스토리 롤백"과 "dnf 히스토리 실행 취소"의 차이점은 무엇입니까?

  22. 22

    소싱 ( '.'또는 '소스')과 bash에서 파일 실행의 차이점은 무엇입니까?

  23. 23

    원시 쿼리 실행과 스파크 SQL 쿼리의 차이점은 무엇입니까?

  24. 24

    콘솔과 젠킨스에서 Maven 목표를 실행하는 것의 차이점은 무엇입니까

  25. 25

    Bash 스크립트를 실행하는 것과 소싱하는 것의 차이점은 무엇입니까?

  26. 26

    subprocess.Popen () 사용과 수동으로 쉘에서 명령 실행의 차이점은 무엇입니까?

  27. 27

    Java 프로세스의 실제 실행 시간을 측정하는 방법은 무엇입니까?

  28. 28

    Windows의 백그라운드에서 Apache에 대한 httpd 데몬 프로세스를 실행하는 방법은 무엇입니까?

  29. 29

    @powershell과 powershell (앞에 @이있는 명령)을 실행하는 것의 차이점은 무엇입니까?

뜨겁다태그

보관