Solaris のシステム管理 (基本編)

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

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

この章の内容は次のとおりです。

システムの実行レベルについての概要は、第 11 章「実行レベルとブートファイル (手順)」を参照してください。

システムのシャットダウン

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

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

システムの電源管理機能を使用する方法については、『Solaris 共通デスクトップ環境 ユーザーズ・ガイド』を参照してください。

システムシャットダウンコマンド

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

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

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

表 12–1 シャットダウンコマンド

コマンド 

説明 

用途 

shutdown

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

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

init

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

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

reboot

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

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

halt

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

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

システムのダウン時間をユーザーに通知する

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

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

システム上のどのユーザーに通知する必要があるかを確認するには、who(1) コマンドを使用します。このコマンドは、システムの現在の実行レベルを調べる場合にも役立ちます。システムの実行レベルを確認する方法を参照してください。

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

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

  2. ログイン中のユーザーを表示します。


    $ 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 -iinit-level -ggrace-period -y
    

    -iinit-level

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

    -g grace-period

    システムがシャットダウンするまでの時間 (秒) を示す。デフォルト値は 60 秒 

    -y

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

    詳細については、shutdown(1M) のマニュアルページを参照してください。

  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. システム管理作業を終了したら、Control + D を押してデフォルトの実行レベルに戻ります。

  7. 次の表を使用して、システムが shutdown コマンドで指定した実行レベルに移行したことを確認します。

    指定した実行レベル  

    SPARC システムのプロンプト  

    x86 システムのプロンプト 

    S (シングルユーザーレベル) 

    0 (電源切断レベル) 

    ok または >

    type any key to continue

    実行レベル 3 (リモートリソースを共有できるマルチユーザーレベル) 

    hostname console login:

    hostname console login:

SPARC: 例 — サーバーを実行レベル S にする

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


# who
root       console      Dec 13 14:30
# shutdown -g180 -y

Shutdown started.    Thu Dec 13 14:30:32 MST 2001

Broadcast Message from root (console) on earth Thu Dec 13 14:30:33...
The system earth will be shut down in 3 minutes 
.
.
.
Broadcast Message from root (console) on earth Thu Dec 13 14:30:33...
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.
Shutting down Solaris Management Console server on port 898.
Print services stopped.
Dec 13 14:34:00 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      Dec 12 08:08
rimmer     pts/0        Dec 11 14:48    (starbug)
pmorph     pts/1        Dec 13 12:31    (bluemidget)
# shutdown -i0 -g300 -y
Shutdown started.    Thu Dec 13 14:51:39 MST 2001

Broadcast Message from root (console) on earth Thu Dec 13 14:51:39...
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      Dec 12 08:08
rimmer     pts/0        Dec 11 14:48    (starbug)
pmorph     pts/1        Dec 13 12:31    (bluemidget)
# shutdown -i6 -g120 -y
Shutdown started.    Thu Dec 13 15:56:30

Broadcast Message from root (console) on earth Thu Dec 13 15:56:30...
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 に戻すことになるでしょう。システムをマルチユーザーレベルに戻す手順については、第 13 章「SPARC: システムのブート (手順)」または第 14 章「x86: システムのブート (手順)」を参照してください。

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

スタンドアロンシステムをシャットダウンする必要がある場合は、次の手順を実行してください。

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

  2. システムをシャットダウンします。


    # init run-level
    

    run-level は新しい実行レベルを指定します。

    詳細については、init(1M) のマニュアルページを参照してください。

  3. 次の表を使用して、システムが init コマンドで指定した実行レベルに移行したことを確認します。

    指定した実行レベル  

    SPARC システムのプロンプト  

    x86 システムのプロンプト 

    S (シングルユーザーレベル) 

    ##

    2 (マルチユーザーレベル) 

    ##

    0 (電源切断レベル) 

    ok または >type any key to continue

    3 (NFS リソースを共有できるマルチユーザーレベル) 

    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 コマンドを使用して、スタンドアロンの 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 に戻すことになるでしょう。システムをマルチユーザーレベルに戻す手順については、第 13 章「SPARC: システムのブート (手順)」または第 14 章「x86: システムのブート (手順)」を参照してください。

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

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

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

すべてのシステムデバイスの電源を落とす前に、前の節の説明に従って、システムをクリーンにシャットダウンする必要があります。

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

  1. 次のどちらかを選択して、システムをシャットダウンします。

    1. サーバーをシャットダウンする場合は、サーバーをシャットダウンする方法を参照

    2. スタンドアロンシステムをシャットダウンする場合は、スタンドアロンシステムをシャットダウンする方法を参照

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

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

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

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

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

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

      システムが実行レベル 3 になります。