추가 읽기

추가 읽기

Linux의 (사용자 프로세스) 에이전트 및 보안 데몬에 대한 Sys V Init 스크립트를 찾으십시오.

  1. 에이전트 데몬 시작 스크립트 /etc/rc.d/init.d/Agentdaemon /etc/rc.d/rc5.d/S91Agentdaemon

  2. 보안 데몬 시작 스크립트 /etc/rc.d/init.d/Securitydaemon /etc/rc.d/rc5.d/S91Securitydaemon

에이전트와 보안 데몬 모두 공통 상위인 공통 에이전트가 필요하다고 가정해 보겠습니다. 재부팅 시 공용 에이전트가 시작되지 않으면 다른 모든 데몬이 공용 에이전트를 시작하고 다른 데몬은 공용 에이전트 시작을 건너뜁니다. Agentdaemon 및 Securitydaemon 스크립트에서 생성을 건너뛰기 위해 범용 에이전트가 실행 중인지 확인하는 "ps" 명령이 있습니다. 이는 RHEL 6.2에서 제대로 작동합니다. 하지만 RHEL 7에서는 두 개의 일반 에이전트가 실행되는 것을 볼 수 있습니다.

그리고 systemd가 에이전트와 보안 데몬을 모두 시작하는지 의심됩니다. 어떻게 든 "ps"는 ​​범용 에이전트가 실행 중임을 표시하지 않습니다.

예를 들어, ps -ef | grep common | grep -v grep | grep -v awk '{print $2}'는 다른 스크립트에 의해 시작된 공용 프로세스를 표시하지 않으므로 다른 스크립트도 공용 에이전트를 시작합니다.

시작 스크립트를 병렬로 실행하지 않는 방법이 있습니까? 아니면 스크립트를 systemd 형식으로 마이그레이션해야 합니까? 빠른 수정은 Sys V init 유형의 모든 스크립트를 systemd로 마이그레이션하는 것보다 더 흥미롭습니다.

답변1

스크립트를 systemd 형식으로 마이그레이션해야 합니까?

예.

rc당신은 System 5 스크립트의 잘 알려진 결함으로 인해 어려움을 겪고 있습니다. 이것은 실제로 systemd와 관련이 없습니다. 예를 들어 다른 방법으로 스크립트를 병렬로 실행하는 경우 startpar이 결함이 발생할 수 있습니다.

grep의 출력은 진행 중인 시스템 상태이든 진행 중인 시스템 상태이든 ps경쟁이 발생하기 쉬운 것으로 알려져 있습니다.grep수십 년사람들은 다른 쉘 스크립트를 사용하여 이러한 동일한 오류가 계속해서 발생한다고 보고합니다. 이것은 어리석고 잘못된 것이며 BSD 매뉴얼 페이지의 "BUGS" 섹션에 언급되어 있습니다 ps. 이제 세상은 더 잘 알아야 합니다.

세상은 이것을 더 잘 이해하고 있으며 한동안 그랬습니다. 우리의 서비스 관리자는 1990년대 초부터 프로세스 목록 및 파일(올바른 숫자를 포함할 수도 있고 포함하지 않을 수도 있음)을 수집하는 것과 관련된 모든 메커니즘이 함께 연결되지 않고도 잘 작동했습니다. 당신은해야정말, 이러한 경쟁 조건과 기타 경쟁 조건이 발생하면 불안정하고 실패하기 쉽고 임시적이고 혼란스러운 System 5 rc스크립트를 버리고 적절한 서비스 관리를 사용하십시오. ifs 없음, buts 없음, 이미 사용 중인 bodge에 대한 "빠른 수정" 없음(추가 greps 자체가 애초에 bodge임)

그러한 서비스 관리자가 많이 있습니다. 당신은하지 않습니다가지다체계화를 사용하십시오. runit, nosh 또는 perp용으로 작성된 다양한 스크립트는 systemd용으로 작성된 단위 파일만큼 간단합니다.

nosh와 systemd가 수행하는 방식에는 보조 서비스를 확인하고 실행하는 두 가지 기본 서비스가 없습니다. 이것이 서비스 관리 시스템의 역할입니다. 대신에 당신은 단순히종속성 선언두 가지 기본 서비스에서 보조 서비스까지 서비스 관리 시스템 에서 시작하라는 지시가 있을 때 시작해야 한다는 Agentdaemon.service것을 알 수 있도록 합니다 . 시스템 서비스 단위에서는 또는 설정이 됩니다.Securitydaemon.servicecommon.serviceRequires=Wants=

추가 읽기

관련 정보