FreeBsd 11에서 충돌이나 재부팅 후 프로세스를 자동으로 다시 시작하는 방법은 무엇입니까?

FreeBsd 11에서 충돌이나 재부팅 후 프로세스를 자동으로 다시 시작하는 방법은 무엇입니까?

관용적인 방법은 무엇입니까? 나는 추가 종속성이 적은 가장 표준적이면서도 간단한 방법을 선호합니다. Linux의 systemd에 대한 대안과 같은 것입니다.

답변1

다음에 추가하여 설치된 프로세스를 자동으로 다시 시작할 수 있습니다./etc/rc.conf

yourprocess_enable="YES"

Linux 사용자를 위한 FreeBSD 시스템 시작

하지만 그것은 시작 스크립트가 있다고 가정합니다./usr/local/etc/rc.d/

FreeBSD 핸드북 - 서비스 시작하기

답변2

프로세스에 대한 rc.d 스크립트가 아직 없는 경우 다음을 사용하여 원하는 결과를 상당히 쉽게 얻을 수 있습니다.데몬(8)명령. 이 명령은 백그라운드에서 하위 프로세스를 실행하며, 명령줄 옵션을 사용하면 -r하위 프로세스가 종료된 경우 해당 프로세스를 다시 시작하도록 할 수 있습니다.

$ daemon -r /some/path/to/command

이후 버전의 FreeBSD에서는 -R <delay in seconds>프로세스를 다시 시작하기 전에 대기할 시간을 지정하도록 지정할 수 있습니다.

재부팅 후 프로세스를 시작하려면 다음 명령을 지정하십시오.크론탭(5)다음과 같은 파일:

@reboot daemon -r /some/path/to/command

crontab 파일을 편집하려면 다음을 사용하십시오.

$ crontab -e

답변3

언급한 대로 <service>_enable=YESin /etc/rc.conf(또는 관련 rc.conf.d파일)은 부팅 시 서비스를 시작합니다.

충돌 시 다시 시작하는 경우 표준적인 방법은 다음과 같습니다.데몬툴즈.

답변4

예를 들어 2분마다 cron에 스크립트를 추가할 수 있습니다.

#!/bin/sh

process = 'my-secret-service' # process name

if ps ax | grep -v grep | grep $process
then
    echo "$process is alive."
else
    echo "$process is dead, but will be launched."
/usr/local/bin/my-secret-service #launch command

fi

관련 정보