LoginSignup
7
3

More than 3 years have passed since last update.

Upstartのことも調べてみたよ

Posted at

勉強前イメージ

SysVinitの後継機。
何がよいのかは知らない

調査

Upstartとは

  • Upstartの概要・特徴

最初はSysVinitと同様に initプロセス が起動します
しかしその後、SysVinitの直列起動ではなく、並列で起動が走ることにより起動時間が短縮されました。
また、 イベント駆動型 になったのが大きな特徴です。
イベントをトリガーとしてジョブを起動することによって、プロセスが起動します。
イベントというのは、とあるサービスが起動開始したタイミングやランレベルが変わったなどもイベントとして設定でき、
依存関係があっても条件がそろった時点で起動します

  • Upstartとは起動の順番でいうとどこか

これは、 SysVinitもUpstartの後継のsystemdも変わらず、
5番目のプロセス実行に値します。

  1. 電源を入れる
  2. BIOS/UEFIの起動
  3. ブートローダーの読み込み
  4. カーネルの読み込み
  5. プロセス実行 ←ココ!!!
  6. ログイン可能

Upstartの詳細見ていく

Upstartの起動順序

  • 1. initプロセスが開始される(pid=1)

initプロセスが開始されることについては、SysVinitと変わらず

  • 2. 各ジョブが待機状態でイベント待ち

概要・特徴 で記載したが、Upstartはイベントをトリガーとしているので
「起動する」というイベントを待機する

  • 3.システム起動のイベントが発行される

「起動する」というイベントが発行され、このイベントをトリガーとしてジョブが起動され、プロセスが上がってきます

  • 4.イベントに対応したジョブが 並列で 実行される

↑で書いた、「トリガーとしてジョブが起動され、プロセスが上がってきます」 に値する箇所。
そして、SysVinitとの違いが 並列 での実行になります。

あれ?/etc/inittabは使わなくなった?

Upstartが適応されている、CentOS6で確認しました。

  • 本文ママ
/etc/inittab
[root@localhost ~]# cat /etc/inittab 
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
# 
id:3:initdefault:
  • 翻訳

要するにデフォルトランレベルの設定しか書いてないし、
ここになにか追加しても変更されないよ と言われてます。

# inittabはupstartがデフォルトのランレベルでのみ使用します。
#
# ここに他の設定を追加しても お使いのシステムには何の影響もありません.
#
# システムの初期化は/etc/init/rcS.confで開始されます.
#
# 個々のランレベルは/etc/init/rc.confで起動されます.
#
# Ctrl-Alt-Delete は /etc/init/control-alt-delete.conf で処理されます。
#
# 端末のgettyは/etc/init/tty.confと/etc/init/serial.confで処理されます。
# 設定は /etc/sysconfig/init で行います。
#
# upstart イベントハンドラの書き方や
# init(5)、init(8)、initctl(8) を参照してください。
#
# デフォルトのランレベル. 使用されるランレベルは以下の通りです。
# 0 - halt (initdefaultには設定しないでください)
# 1 - シングルユーザーモード
# 2 - マルチユーザ、NFSなし (ネットワークがない場合は3と同じ)
# 3 - フルマルチユーザーモード
# 4番 - 未使用
# 5 - X11
# 6 - 再起動 (これに initdefault を設定しないでください)
# 
id:3:initdefault.

勉強後イメージ

まだinitは生き残ってた。
Upstartでは並列になってるから、結構SysVinitは直列でで起動させるのは遅かったというのがネックだったっぽい...
Upstartになって、誰かからの反応なかったら何もしませんよーって感じらしい。
さて次はsystemdだー

参考

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3