Solaris のシステム管理 (第 1 巻)

第 9 章 システムのシャットダウン (手順)

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

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

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

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

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

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

システムの電源管理機能を使用する方法については、『電源管理システム ユーザーマニュアル』を参照してください。

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

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

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

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

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

コマンド 

説明 

用途 

shutdown

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

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

init

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

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

reboot

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

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

halt

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

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


注 -

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


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

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

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

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

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

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

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

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

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

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

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


    $ who
    

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

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


$ who
holly 1     console      May  7 07:30 
kryten      pts/0  2     May  7 07:35	 (starbug) 4
lister      pts/1        May  7 07:40 3 (bluemidget)
  1. ログインしているユーザーのユーザー名。

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

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

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

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

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

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


    # who
    

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

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


    # 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 システム上の場合 

    IA システム上の場合 

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

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

    ok または >

    type any key to continue

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

    hostname console login:

    hostname console login:

SPARC: 例 - システムを実行レベル S にする(サーバー)

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


# who
root       console      Jul 14 13:53
# shutdown -g180 -y
 
Shutdown started.    Wed Jul 14 13:55:55 MDT 1999

Broadcast Message from root (console) on earth Wed Jul 14 13:55:56...
The system earth will be shut down in 3 minutes 
.
.
.
Broadcast Message from root (console) on earth Wed Jul 14 13:58:28...
The system earth will be shut down in 30 seconds
.
.
.
INIT: New run level: S
The system is coming down for administration.  Please wait.
Unmounting remote filesystems: /vol nfs done.
Jul 14 13:59:15 earth /usr/sbin/vold[376]: problem unmounting /vol;
Print services stopped.
Jul 14 13:59:16 earth syslogd: going down on signal 15
Killing user processes: done.

INIT: SINGLE USER MODE

Type control-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
root       console      Jul 14 14:01
rimmer     pts/0        Jul 14 14:03    (starbug)
pmorph     pts/1        Jul 14 14:04    (bluemidget)
# shutdown -i0 -g300 -y
Shutdown started.    Wed Jul 14 14:05:03 MDT 1999

Broadcast Message from root (console) on earth Wed Jul 14 14:05:03...
The system earth will be shut down in 5 minutes 
.
.
.
Changing to init state 0 - please wait
# 
INIT: New run level: 0
The system is coming down.  Please wait.
System services are now being stopped.
.
.
.
The system is down.
syncing file systems... done
Program terminated
Type  help  for more information
ok 

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

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

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


# who
root       console      Jul 14 14:14
rimmer     pts/0        Jul 14 14:15    (starbug)
pmorph     pts/1        Jul 14 14:15    (bluemidget)
# shutdown -i6 -g120 -y
Shutdown started.    Wed Jul 14 14:16:08 MDT 1999

Broadcast Message from root (console) on earth Wed Jul 14 14:16:08...
The system earth will be shut down in 2 minutes 
.
.
.
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... done
rebooting...
.
.
.
earth console login:

次に進む手順

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

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

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

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


    # init run-level
    

    run-level

    新しい実行レベル 

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

    移行後の実行レベル 

    SPARC システムの場合 

    IA システムの場合 

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

    #
    #

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

    #
    #

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

    ok または >
    type any key to continue

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

    hostname console login:
    hostname console login:

IA: 例 - システムを実行レベル 0 にする (スタンドアロン)

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


# 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 コマンドとを使用して、スタンドアロンの SPARC システムを実行レベル S (シングルユーザー状態) にしています。


# init S
#
INIT: New run level: S
The system is coming down for administration.  Please wait.
Unmounting remote filesystems: /vol nfs done.
Print services stopped.
syslogd: going down on signal 15
Killing user processes: done. 
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 に戻すことになるでしょう。システムをマルチユーザー状態に移行する手順については、第 10 章「SPARC: システムのブート (手順)」または第 11 章「IA: システムのブート (手順)」を参照してください。

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

  1. 以下の表を参考にして、該当するシャットダウン作業を実行します。

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

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

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

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

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

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

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

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

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

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

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