web-dev-qa-db-ja.com

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
3
tarabyte

起動システムジョブには_.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 start_はSystem Vinitスクリプトを直接呼び出しています。これにUpstartジョブを使用する場合は、やりたいことではありません。
  3. _/usr/sbin/watchdog_は、バイナリを直接実行するだけです。プログラムがデーモン化しない限り、これ(IMHO)はデバッグにのみ役立ちます。デーモン化すると、initスクリプトから監視および制御機能が失われ、Upstartの再生成機能が失われます。

(2)人々は一般に、サービスを開始するための構造化された制御可能な方法を望んでいるために存在しますが、(3)は提供していません。 (1)(2)が十分に提供されていないために存在します(そのため、Upstart、systemd、OpenRCなどが作成されました)。

2
muru