起動と停止

Last-modified: 2018-02-03 (土) 09:34:06 (2267d)

システム起動の流れ(SPARC)

  1. PROM(IAのBIOS)
  2. bootblk(IAのMBR)
  3. uftboot
  4. /kernel/genunix
  5. /kernel配下のカーネルモジュール
  6. デバイスドライバ
  7. /etc/system
  8. /sbin/init参照⇒/etc/inittab
  9. /sbun/rc?

実行レベル

0PROMモニタモード、システム停止
1,s,Sシングルユーザモード
2マルチユーザモード、NFSサーバデーモンなし
3マルチユーザモード、NFSサーバデーモン起動、デフォルトの実行レベル
4未使用
5システム停止
6システム再起動
  • PROMモニタモード
    OSが起動していない状態。安全に電源を切ることができる。ハードウェアの管理作業を行える。
  • シングルユーザモード
    最低限のサービスのみ起動。スーパユーザのみログイン可能
  • マルチユーザモード
    すべてのサービスが起動。すべてのユーザがログイン可能。
  • 現在の実行レベルの確認方法
    # who -r
  • 実行レベルの変更方法
    # init ?    (?は実行レベルの番号)
  • /etc/inittab ファイル
    これを編集することでシステム起動時の実行レベルを変更することができる。
    is:3:initdefault:
    デフォルトの実行レベル3

サービスの起動

/etc/init.d ディレクトリにサービスの起動スクリプトが入っている。例えば、httpdを起動したいときは、

# /etc/init.d/httpd start

などとする。

システム起動時にある実行レベルでサービスを自動的に起動したいときは、/etc/rcS.d/ 〜 /etc/rc3.d/ ディレクトリに /etc/init.d/ 配下のスクリプトへのシンボリックリンクを置く。

例えば、httpdを実行レベル3で自動的に起動したいときは、

# ln -s /etc/init.d/httpd /etc/rc3.d/S90httpd

などとする。ここで、S(スタート)は起動するという意味で、K(キル)を指定すると停止を意味する。90というのは90番目に起動するという意味で、00から順番に実行され99まで指定することができる。

システム停止の流れ

  1. システム停止コマンドの実行
  2. initプロセスによる実行レベルの移行開始(/etc/inittab)
  3. rcスクリプトによる各種サービスの停止(/etc/rc?.d/Kxx)
  4. カーネルによる終了処理
  5. 電源断

システム停止コマンド

  • shutdown
    • ユーザーへの通知、時間指定、同期(sync)、解除(umount)、APの後処理
    • 実行例
      # shutdown -i0 -g0 -y
      i:実行レベル、g:待ち時間、y:すべてyesと答える
  • init
    • 同期(sync)、解除(umount)、APの後処理
    • 実行例
      # init 0

上記コマンドが使えないとき

  • halt
  • poweroff
  • reboot
    • 同期(sync)、解除(umount)、プロセス終了

コメント