FreeBSD에서 데몬을 계속 실행하기

FreeBSD에서 데몬을 계속 실행하기

이는FreeBSD리눅스 문제라기보다 문제죠. Linux에서 어떻게 수행되는지 또는 systemd기타 질문에 대답하지 마십시오 .

충돌 상황이 발생했습니다 memcached. 이것은 재현 가능하지 않으며 결국 알아낼 것입니다. 그 동안에는 그것이 memcached실행되고 있는지 확인해야 합니다. 그렇지 않은 경우 다시 시작해야 합니다. 를 통해 설치 pkg하고 부팅했습니다 /usr/local/etc/rc.d/memcached. 몇 가지 옵션이 있습니다.

  1. 감시 스크립트를 작성하고 10분마다 또는 cron. 여기서 가장 중요한 것은 내가 그 스크립트를 작성해야 한다는 것입니다. 을 호출하고 service memcached status, 결과를 평가하고, 을 호출할 수도 있습니다 service memcached start. 쓸 줄은 알지만 어색해 보이네요. 차라리 이미 존재하는 메커니즘을 사용하고 싶습니다.
  2. 루프 스크립트를 작성할 수 있습니다 do ... until. 그런 다음 수정하면 됩니다 /usr/local/etc/rc.d/memcached. 하지만 패키지로 설치된 파일을 원래 상태로 유지하고 싶습니다. 패키지를 업그레이드할 때마다 변경 사항을 영구적으로 적용하고 싶지 않습니다.
  3. 스크립트를 넣었 /usr/local/etc/periodic.d/hourly더니 periodic(8).

프로세스를 계속 실행하기 위해 제가 생각하지 못한 간단한 기본 FreeBSD 메커니즘이 있습니까? 아니면 내가 너무 생각하고 있어서 8줄 스크립트를 작성하고 호출을 시작해야 합니까 cron?

답변1

당신이 찾고 있는 것은가정 교사. 나는 FreeBSD가 기본적으로 소프트웨어를 제공한다고 생각하지 않습니다. 그러나 항구에도 일부가 있습니다. 적어도 나는 그것을 이해한다;

  • 감독자이름이 지정된 포트로 사용할 수 있습니다.py-supervisor(포트는 여러 가지 형태로 제공되며 pkg install py37-supervisorPython 버전과 일치하는 버전을 사용하여 설치할 수 있습니다).
  • 데몬 도구다음과 같이 사용할 수 있습니다.포트.
  • 감시 장치다음과 같이 사용할 수 있습니다.포트.
  • FSCD이름이 지정된 포트로 사용할 수 있습니다.fsc.

감독을 추천합니다. 패키지를 설치하고 다음 섹션을 추가합니다 /usr/local/etc/supervisord.conf.

[program:memcached]
command=/usr/local/etc/rc.d/memcached

시작 시 감독자를 실행하려면 다음 줄을 편집 /etc/rc.conf하거나 사용하십시오./etc/rc.conf.local

supervisord_enable="YES"

어떤 감독자를 선택하든 을 비활성화해야 합니다 memcached.

답변2

daemon(1)이 플래그를 사용하여 를 다시 시작할 수 있습니다 -r. 훨씬 간단합니다, IMHO. 그런데 제가 memcached 포트를 관리하고 있으므로 memcached 충돌 문제를 해결하는 데 도움을 드릴 수 있을 것입니다. 도움이 되신다면 자세한 내용을 알려주세요.

관련 정보