ksaitoの日記

日々試したことの覚え書き

Upstartの使い方を理解しよう

Ubuntuでは、起動時間を早くするためにinitデーモンではなくUpstartが採用されています。
また、initデーモンでは、うまく扱えないUSB関連の機器を扱うためにイベントドリブンで必要になったら起動するようになっているようです。
Upstartには、イベント、タスク、サービス、ジョブが定義されていて、最終的には、cronも置き換えられるそうです。
/etc/init.dは、互換のために残されています。
Upstart対応されていると手動での起動/停止で見慣れないメッセージが表示されて、ちょっと戸惑います。

Upstart対応されているサービスを操作しようとすると...

/etc/init.dで操作するとUpstartで操作しなさいと言いつつ一番最後の行で実行してくれます。

$ sudo /etc/init.d/eucalyptus-cloud status
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service eucalyptus-cloud status

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the status(8) utility, e.g. status eucalyptus-cloud
eucalyptus-cloud start/running
$

助言に従って操作する

助言に従って、serviceコマンドを使うと、ちゃんと実行できます。

$ service eucalyptus-cloud status
eucalyptus-cloud start/running
$

登録されているサービス一覧を表示する

Upstartでは、/sbin/initctlコマンドがキーとなっているようです。
登録されているサービス一覧や、これらサービスの起動/停止をすることができます。
下記のようにlistでサービス一覧を見ることができます。
list以外にstart, stop, restart, statusなどinitデーモンでおなじみのコマンドとサービス名を指定すると手動で制御することができます。

$ initctl list
avahi-daemon stop/waiting
eucalyptus-sc-registration stop/waiting
mountall-net stop/waiting
rc stop/waiting
rsyslog start/running, process 779
tty4 start/running, process 920
udev start/running, process 519
upstart-udev-bridge start/running, process 512
eucalyptus start/running, process 938
hwclock-save stop/waiting
tty5 start/running, process 923
eucalyptus-walrus-registration stop/waiting
atd start/running, process 949
dbus start/running, process 808
eucalyptus-cc-registration stop/waiting
control-alt-delete stop/waiting
hwclock stop/waiting
module-init-tools stop/waiting
cron start/running, process 950
eucalyptus-cloud start/runningmountall stop/waiting
eucalyptus-sc start/running
... 中略 ...
$