우분투에서 서비스/감독으로 실행하는 방법

우분투에서 서비스/감독으로 실행하는 방법

3개의 클러스터가 할당되었습니다. 하나는 Kafka, 하나는 Storm, 하나는 ZooKeeper입니다. 서비스가 시작되고 중지되면 다시 시작되도록 이 작업을 수행해야 합니다.사육사 관리 가이드.

OS for every machine => Ubuntu-trusty 14.04
Platform => Running in Amazon EC2 

요약하자면 부팅 시 해당 서비스를 시작할 수 있어야 합니다. 서비스가 시작되면 다시 시작해야 합니다. Storm, Kafka 및 Zookeeper에 대해 이 작업을 수행해야 합니다. 간단하고 직접적인 답변이 필요합니다. 이 질문을 하는 또 다른 방법은 다음과 같습니다. 내 목표를 달성하는 가장 쉬운 방법은 무엇입니까?

답변1

Ubuntu의 서비스 관리 메커니즘은 Upstart입니다. 신생 가이드는 다음과 같습니다. http://upstart.ubuntu.com/cookbook/

시작하는 것은 어렵지 않습니다. 표절할 수 있는 예는 많습니다.

(댓글에 링크된 채팅에서) @MassSql에는 백그라운드 서비스가 있다는 것이 밝혀졌습니다(그리고 아마도 서비스가 종료되면 자체적으로 모니터링/다시 시작될 수도 있습니다). 이러한 상황에서 그는 더 간단한/레거시 RC 스크립팅 메커니즘(Upstart에 의해 구현되지만 부팅 시 시작하고 종료 시 중지하는 이러한 간단한 작업을 위해 더 간단한 인터페이스를 사용함)을 사용할 수 있습니다. 따라서 접근 방식은 다음과 같습니다.

  1. /etc/init.d로 이동하여 dns-clean의 복사본을 만듭니다(원하는 대로 이름을 바꿉니다).
  2. 파일을 편집합니다. INIT INFO설명을 변경하고 및 필드를 지워 Required-Start섹션을 변경합니다 Required-Stop. 새로운 이름을 위해 Provides. (기본적으로 모든 것을 변경하지만 Default-Start)
  3. 다음 줄을 삭제하세요.

테스트 -f /usr/sbin/pppconfig 종료 0

mkdir /var/run/pppconfig >/dev/null 2>&1 ||참

test -f /etc/ppp/ip-down.d/0dns-down ||

  1. start)스크립트를 실행하려면 블록의 줄을 변경하세요 . ;;마지막으로 저장하세요 .

  2. 실행 update-rc.d foobar enable위치는 foobar서비스 이름입니다( Provides적어도 관례에 따라 파일 이름도 같아야 함).

시스템을 다시 시작하고 테스트합니다.

관련 정보