Solaris のシステム管理

第 7 章 システムのシャットダウンの手順

この章では、システムのシャットダウン手順について説明します。この章で説明する手順は次のとおりです。

この章で説明する主な内容は次のとおりです。

使用可能な実行レベルについての概要は、第 6 章「実行レベルとブートファイルの手順」を参照してください。

システムをシャットダウンする場合

Solaris system software は、電子メールとネットワーク資源をいつでも利用できるように停止することなく動作するように設計されています。しかし、システム管理作業を行う場合や緊急事態が発生した場合は、システムをシャットダウンして安全に電源を切断できる状態にするか、一部のシステムサービスしか提供しない中間の実行レベルまで移行する必要があります。たとえば次のような場合です。

システムをシャットダウンする必要があるシステム管理作業についての詳細は、第 5 章「システムのシャットダウンとブートの概要」を参照してください。

システムをシャットダウンするには

システムをシャットダウンする第 1 の方法は、init および shutdown コマンドを使用する方法です。どちらのコマンドもシステムを「きれいに シャットダウン」します。つまり、すべてのファイルシステムに対する変更はディスクに書き出され、すべてのシステムサービス、プロセス、オペレーティングシステムが正常に終了します。

システムのアボートキーシーケンスを使用したり、電源をオフにしてからオンにする方法では、システムサービスが突然終了してしまうので、きれいなシャットダウン方法とはいえません。しかし、緊急時には、これらの方法を使用しなければならない場合もあります。システムの復元手順については、第 8 章「SPARC システムのブートの手順」または第 9 章「Intel:x86 システムのブートの手順」を参照してください。


注 -

システムを実行レベル 2 または S から実行レベル 3 (NFS 資源が共有されたマルチユーザー状態) にきれいに移行する方法はありません。システムを中間の実行レベルに移行するには、いったん実行レベル 0 にしてからブートして実行レベル S にするのが最もよい方法です。


表 7-1 に、いくつかのシャットダウンコマンドとその用途を要約します。

表 7-1 シャットダウンコマンド

コマンド 

説明 

用途 

shutdown

init を呼び出してシステムをシャットダウンする実行可能なシェルスクリプト。デフォルトでは、システムは実行レベル S に移行する。

実行レベル 3 で動作しているサーバーで使用する。サーバーにログインしているユーザー、およびサーバー資源をマウントしているシステムに、サーバーが間もなくシャットダウンされることが通知される。 

init {0, 1, 2, 3, 6, S, s}

すべてのアクティブなプロセスを終了し、ディスクを同期させてから実行レベルを変更する実行可能ファイル。

他のユーザーが影響を受けないスタンドアロンシステムで使用する。ユーザーはまもなく行われるシャットダウンについて通知されないので、シャットダウンにかかる時間は短くて済む。 

reboot

ディスクを同期させ、ブート命令を uadmin システムコールに渡す実行可能ファイル。実際にプロセッサを停止するのは、uadmin システムコールである。

推奨されない。代わりに、init コマンドを使用する。

halt

ディスクを同期させ、プロセッサを停止する実行可能ファイル。

/etc/rc0 (すべてのプロセスを停止し、ディスクを同期させ、すべてのファイルシステムのマウントを解除する) スクリプトを実行しないので、推奨されない。


注 -

この章およびこのマニュアル全体を通して、/usr/ucb/shutdown コマンドではなく /usr/sbin/shutdown コマンドを使用します。


デバイスの電源を落とす場合

次のような場合は、すべてのシステムデバイスの電源を落とす必要があります。

システムデバイスとは、CPU、モニター、外部デバイス (ディスク、テープ、プリンタ) などを意味します。

シャットダウン手順を実行してから、すべてのデバイスの電源を落としてください。

システムのダウンについてユーザーに通知する

shutdown コマンドは起動時に、ログインしているすべてのユーザーおよびシステム資源をマウントしているすべてのシステムに、警告と最終メッセージという形でシャットダウンを通知します。

サーバーをシャットダウンする場合に、init コマンドではなく shutdown コマンドを使用することを推奨するのはこのためです。どちらを使用するにしても、ユーザーには予定されているシャットダウンについてあらかじめ電子メールで知らせておくようにしてください。

システム上のどのユーザーに通知する必要があるかを知るには、who コマンドを使用します。who コマンドは、システムの現在の実行レベルを知りたい場合にも使用できます。システム上のどのユーザーに通知する必要があるかを知るには、who コマンドを使用します。who コマンドは、「システムの実行レベルを確認する方法」で説明されているシステムの現在の実行レベルを知りたい場合にも使用できます。

システムにログインしているユーザーを知る方法

  1. シャットダウンするシステムにログインします。

  2. who コマンドを使用して、ログイン中のユーザーを表示します。

    $ who
    

例-システムにログインしているユーザーを知る

who コマンドの出力例を以下に示します。

$ who
1holly2          console  May  7 07:30
3kryten    pts/0    May  7 07:35	(starbug)
4lister    pts/1    May  7 07:40	(bluemidget)

1. ログインしているユーザーのユーザー名。

2. ログインしているユーザーの端末回線。

3. ユーザーがログインした日時。

4. (省略可能) リモートシステムからログインしているユーザーのホスト名。

サーバーをシャットダウンする方法

  1. スーパーユーザーになります。

  2. システムにユーザーがログインしているかどうか調べます。

        # who
    

    ログインしているすべてのユーザーが表示されます。システムがシャットダウンされることを、メールかブロードキャストメッセージで知らせることもできます。

  3. shutdown コマンドを使用してシステムをシャットダウンします。

        # shutdown -iinit-state -ggrace-period -y 
    

    -iinit-state

    システムをデフォルトの S 以外の init 状態にする。0、1、2、5、6 のいずれかを指定できる。 

    -ggrace-period

    シャットダウンするまでの時間 (秒) を指定する。デフォルトは 60 秒。 

    -y

    ユーザーの介入なしにシャットダウンを継続する。このオプションを指定しないと、シャットダウンを継続するかどうか 60 秒後にたずねられる。 

  4. シャットダウンを継続するかどうかたずねられたら、y を入力します。

        Do you want to continue? (y or n): y
    

    -y オプションを指定した場合、このプロンプトは表示されません。

  5. プロンプトが表示されたら、スーパーユーザー のパスワードを入力します。

        Type Ctrl-d to proceed with normal startup,
        (or give root password for system maintenance): xxx
    
  6. システム管理作業を終了したら、Ctrl-d を押してデフォルトの実行レベルに戻ります。

  7. システムが、shutdown コマンドで指定した実行レベルに移行したことを確認する方法を以下の表に要約します。

    移行後の実行レベル 

    SPARC システムの場合 

    x86 システムの場合 

    実行レベル S (シングルユーザーモード) 

    実行レベル 0 (電源切断状態) 

    ok または >

    type any key to continue

    実行レベル 3 (リモート資源が共有されたマルチユーザー状態) 

    hostname console login:

    hostname console login:

例 - SPARC システムを実行レベル S にする

次の例では、shutdown コマンドと boot コマンドを使用して、3 分後に、SPARC システムを実行レベル S (シングルユーザーモード) にしています。

# who
root       console       May  7 08:35
# shutdown -i0 -g180 -y

Shutdown started.    Wed May  7 08:39:17 MDT 1997

Broadcast Message from root (console) on mars Wed May  7 08:39:18
The system will be shut down in 1 minute
Broadcast Message from root (console) on mars Wed May  7 08:39:50
The system will be shut down in 30 seconds
.
.
.
INIT: New run level: 0
The system is coming down.  Please wait.
syncing file systems... [7] [7] [5] done
Program terminated
ok boot -s
Booting from: sd(0,0,0) -s
SunOS Release 5.6 Version generic [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1997, Sun Microsystems, Inc.
configuring network interfaces: le0.
Hostname: mars

INIT: SINGLE USER MODE

Type Ctrl-d to proceed with normal startup,
(or give root password for system maintenance): xxx
Entering System Maintenance Mode
# 

例 - SPARC システムを実行レベル 0 にする

次の例では、shutdown コマンドを使用して、SPARC システムを 5 分後に実行レベル 0 にしています。余分な確認用プロンプトが表示されないよう -y オプションを指定しています。

# who
kryten     console      May  7 08:28
rimmer     pts/1        May  7 08:29    (starbug)
pmorph     pts/2        May  7 08:30    (bluemidget)
(ログインしているユーザーにメールを送る)
# shutdown -i0 -g300 -yShutdown started.    Wed May  7 09:49:01 PDT 1997
Broadcast Message from root (console) on pluto Wed May  7 09:46:58...  
The system will be shut down in 3 minutes
.

.

.
INIT: New run level: 0
The system is coming down.  Please wait.
.

.

.
The system is down.
syncing file systems... [11] [9] [5] done
Program terminated
Type  help  for more information
ok 

システムを実行レベル 0 にしてすべてのデバイスの電源を落とす場合は、「すべてのデバイスの電源を落とす方法」を参照してください。

例 - SPARC システムをリブートして実行レベル 3 にする

次の例では、shutdown コマンドを使用して SPARC システムをリブートし、2 分後に実行レベル 3 にしています。余分な確認用プロンプトが表示されないよう -y オプションを指定しています。

# who
kryten     console      May  7 08:40
rimmer     pts/1        May  7 08:45    (starbug)
pmorph     pts/2        May  7 08:50    (bluemidget)
(ログインしているユーザーにメールを送る)
# shutdown -i6 -g120 -yShutdown started.    Wed May  7 09:52:06 PDT 1997
Broadcast Message from root (console) on pluto Wed May  7 09:46:58...
The system will be shut down in 1 minute
Changing to init state 6 - please wait
#
INIT: New run level: 6
The system is coming down.  Please wait.
.

.

.
The system is down.
syncing file systems... [11] [9] [5] done
rebooting...
.

.

.

pluto console login:

このあとの手順

システムをシャットダウンした理由が何であれ、最終的には、すべてのファイル資源が使用でき、ユーザーがログインできる実行レベル 3 に戻すことになるでしょう。システムをマルチユーザー状態に移行する手順については、第 8 章「SPARC システムのブートの手順」または第 9 章「Intel:x86 システムのブートの手順」を参照してください。

スタンドアロンシステムをシャットダウンする方法

  1. スーパーユーザーになります。

  2. init コマンドを使用してシステムをシャットダウンします。

        # init run-level
    

    run-level

    新しい実行レベル 

  3. システムが、init コマンドで指定した実行レベルに移行したことを確認する方法を以下の表に要約します。

    移行後の実行レベル 

    SPARC システムの場合 

    x86 システムの場合 

    実行レベル S (シングルユーザーモード) 

    #
    #

    実行レベル 2 (マルチユーザー状態) 

    #
    #

    実行レベル 0 (電源切断状態) 

    ok または >
    type any key to continue

    実行レベル 3 (リモート資源が共有されたマルチユーザー状態) 

    hostname console login:
    hostname console login:

例 - x86 システムを実行レベル 0 にする

次の例では、init コマンドを使用して、x86 システムを安全に電源を落とせるレベルにします。

# init 0
#
INIT: New run level: 0
The system is coming down.  Please wait.
.

.

.
The system is down.
syncing file systems... [11] [10] [3] done
Type any key to continue

システムを実行レベル 0 に移行してすべてのデバイスの電源を落とす場合は、「すべてのデバイスの電源を落とす方法」を参照してください。

例 - SPARC システムを実行レベル S にする

次の例では、init コマンドと boot コマンドを使用して、SPARC システムを実行レベル S (シングルユーザー状態) にしています。

# init 0
#
INIT: New run level: 0
The system is coming down.  Please wait.
.
.
.
syncing file systems... [7] [7] [5] done
Program terminated
ok boot -s
Booting from: sd(0,0,0) -s
SunOS Release 5.6 Version generic [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1997, Sun Microsystems, Inc.
configuring network interfaces: le0.
Hostname: venus

INIT: SINGLE USER MODE

Type Ctrl-d to proceed with normal startup,
(or give root password for system maintenance): xxx
Entering System Maintenance Mode

# 

このあとの手順

システムをシャットダウンした理由が何であれ、最終的には、すべてのファイル資源が使用でき、ユーザーがログインできる実行レベル 3 に戻すことになるでしょう。システムをマルチユーザー状態に移行する手順については、第 8 章「SPARC システムのブートの手順」または第 9 章「Intel:x86 システムのブートの手順」を参照してください。

すべてのデバイスの電源を落とす方法

  1. 以下の表を使用して、システムのシャットダウンに使用する手順を決定します。

    サーバーをシャットダウンする場合 

    スタンドアロンシステムをシャットダウンする場合 

    「サーバーをシャットダウンする方法」を参照

    「スタンドアロンシステムをシャットダウンする方法」を参照

  2. システムをシャットダウンしたら、すべてのデバイスの電源を落とします。必要なら、電源ケーブルをコンセントから引き抜きます。

  3. 電源が回復したら、次の手順に従ってシステムとデバイスの電源を投入します。

    1. 電源ケーブルをコンセントに差し込みます。

    2. モニターの電源を入れます。

    3. ディスクドライブ、テープドライブ、プリンタの電源を入れます。

    4. CPU の電源を入れます。

      CPU の電源が入ると、システムは実行レベル 3 になります。