upstart 스크립트의 이름을 지정하는 방법과 위치를 지정하는 방법은 무엇입니까?

upstart 스크립트의 이름을 지정하는 방법과 위치를 지정하는 방법은 무엇입니까?

부팅 시 감시 키커를 시작하고 싶지만 이름을 무엇으로 지정해야 할지, 시작 스크립트를 어디에 배치해야 할지 잘 모르겠습니다.

start on startup
respawn
script
  /usr/sbin/watchdog
end script

인용하다:http://upstart.ubuntu.com/cookbook/

또한 sysVinit, init.d, rc.local, upstart(최신 및 최고?) 간의 차이점을 이해하려고 노력하고 있습니다.

동일한 작업을 수행하는 방법이 너무 많은 이유는 무엇입니까? 예를 들면 다음과 같습니다.

service watchdog start 
/etc/init.d/watchdog start
/usr/sbin/watchdog

답변1

Upstart 시스템 작업에는 .conf확장자가 있으며 다음 위치에 배치됩니다./etc/init. 따라서 이러한 줄을 포함하는 항목을 생성할 수 /etc/init/watchdog.conf있으며 유효한 Upstart 서비스 정의가 있어야 합니다.

  1. service watchdog start: 이 service명령은 일반적으로 사용할 올바른 init 서비스를 선택하는 스크립트입니다(즉, Upstart 명령이나 스크립트를 실행할지, 아니면 /etc/init.d사용 중인 경우 systemd를 호출할지 여부).systemctl
  2. /etc/init.d/watchdog startSystem V init 스크립트를 직접 호출합니다. 이 작업에 Upstart를 사용하려는 경우에는 이 작업을 수행하고 싶지 않습니다.
  3. /usr/sbin/watchdog바이너리를 직접 실행하면 됩니다. 이것은 (IMHO) 프로그램이 데몬화되지 않는 한 디버깅에만 유용합니다. 프로세스를 데몬화하면 init 스크립트의 모니터링 및 제어 기능은 물론 Upstart의 재생성 기능도 잃게 됩니다.

(2) 사람들은 종종 서비스를 시작하기 위해 구조화되고 통제된 방법이 필요하지만 (3) 제공할 수 없기 때문에 존재합니다. (1)은 (2) 충분한 기능을 제공하지 않기 때문에 존재합니다(이것이 Upstart, systemd, OpenRC 등이 만들어진 이유입니다).

관련 정보