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

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

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

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

システムの実行レベルの概要については、第 18 章サービスの管理 (概要)を参照してください。

実行レベルとブートファイルに関連した手順については、「システムのシャットダウン (作業マップ)」を参照してください。

システムのシャットダウン (作業マップ)

作業 

説明 

参照先 

システムにログインしているユーザーを確認します。 

who コマンドを使用して、システムにログインしているユーザーを確認します。

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

サーバーをシャットダウンします。 

適切なオプションで shutdown コマンドを使用して、サーバーをシャットダウンします。

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

スタンドアロンシステムをシャットダウンします。 

init コマンドを使用し、適切な実行レベルを指定して、スタンドアロンシステムをシャットダウンします。

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

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

システムの電源を落とすデバイスは次のとおりです。 

  • CPU

  • モニター

  • 外部デバイス (ディスク、テープ、プリンタなど)

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

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

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

次のような場合がそれに該当します。

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

システムの電源管理機能を使用する方法については、pmconfig(1M) のマニュアルページを参照してください。

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

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

システムのアボートキーシーケンスを使用したり、電源をオフにしてからオンにする方法では、システムサービスが突然終了してしまうので、正常なシャットダウン方法とはいえません。しかし、緊急時には、これらの方法が必要となる場合もあります。システムの復旧方法については、第 12 章Oracle Solaris システムのブート (手順) and第 13 章Oracle Solaris ブートアーカイブの管理 (手順)を参照してください。


注 –

Solaris 10 6/06 以降のリリースが稼働する x86 システムでは、電源ボタンを押して離すとシステムの正常なシャットダウンが開始されます。この方法は、init 5 コマンドを使用するのと同等です。


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

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

コマンド 

説明 

用途 

shutdown

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

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

init

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

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

reboot

ディスクを同期させ、ブート命令を uadmin システムコールに渡す実行可能ファイル。このシステムコールによってプロセッサが停止します。

init コマンドを使用するのが望ましい方法です。

haltpoweroff

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

すべてのプロセスを正常にシャットダウンしないで、残りのファイルシステムをすべてマウント解除するため、推奨されていません。正常なシャットダウンを行わずにサービスを停止する操作は、緊急時またはほとんどのサービスがすでに停止している場合に限って行うべきです。 

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

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

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

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

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

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

  2. システムにログインしているすべてのユーザーを表示します。


    $ who
    

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

次の例は、システムにログインしているユーザーを表示する方法を示しています。


$ who
holly       console      May  7 07:30
kryten      pts/0        May  7 07:35   (starlite) 
lister      pts/1        May  7 07:40   (bluemidget)

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

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

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


    # who
    

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

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


    # shutdown -iinit-level -ggrace-period -y
    
    -iinit-level

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

    実行レベル 0 および 5 は、システムのシャットダウン用に予約された状態です。実行レベル 6 はシステムをリブートします。実行レベル 2 はマルチユーザーオペレーティング状態として使用できます。

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

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

    指定した実行レベル 

    SPARC システムのプロンプト 

    x86 システムのプロンプト 

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

    0 (電源切断レベル) 

    ok または >

    Press any key to reboot

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

    hostname console login:

    hostname console login:


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

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


# who
root   console      Jun 14 15:49    (:0)

# shutdown -g180 -y

Shutdown started.    Mon Jun 14 15:46:16 MDT 2004

Broadcast Message from root (pts/4) on venus Mon Jun 14 15:46:16...
The system venus will be shut down in 3 minutes .
.
.
Broadcast Message from root (pts/4) on venus Mon Jun 14 15:46:16...
The system venus 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.
Jun 14 15:49:00 venus syslogd: going down on signal 15
Killing user processes: done.

Requesting System Maintenance Mode
SINGLE USER MODE

Root password for system maintenance (control-d to bypass): xxxxxx
single-user privilege assigned to /dev/console.
Entering System Maintenance Mode
#


例 10–3 SPARC: サーバーを実行レベル 0 にする

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


# who
root       console       Jun 17 12:39
userabc		 pts/4        Jun 17 12:39   (:0.0)
# shutdown -i0 -g300 -y
Shutdown started.    Thu Jun 17 12:40:25 MST 2004

Broadcast Message from root (console) on pretend Thu Jun 17 12:40:25...
The system pretend 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 にしてすべてのデバイスの電源を落とす場合は、「すべてのデバイスの電源を落とす方法」を参照してください。



例 10–4 SPARC: サーバーをリブートして実行レベル 3 にする

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


# who
root   		console      Jun 14 15:49    (:0)
userabc    pts/4        Jun 14 15:46    (:0.0)
# shutdown -i6 -g120 -y
Shutdown started.    Mon Jun 14 15:46:16 MDT 2004

Broadcast Message from root (pts/4) on venus Mon Jun 14 15:46:16...
The system venus 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...
.
.
.
venus console login:

参照

システムをシャットダウンした理由にかかわらず、すべてのファイルリソースが利用可能かつユーザーがログイン可能な、実行レベル 3 にシステムが戻ることを想定しているでしょう。システムをマルチユーザーレベルに戻す手順については、第 12 章Oracle Solaris システムのブート (手順)を参照してください。

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

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

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

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


    # init 5
    

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

    • 別の方法として、uadmin コマンドを使ってシステムをシャットダウンすることもできます。


      # uadmin 2 0
      
    • Solaris 10 6/06 以降のリリースが稼働する x86 システムを使用する場合、電源ボタンを押して離すことで、システムの正常なシャットダウンの開始とシステムの電源切断を行えます。

      この機能は、init 5 コマンドを使ってシステムをシャットダウンするのと同等です。詳細については、「システムのシャットダウンとブートに関する新機能」を参照してください。

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

    指定した実行レベル 

    SPARC システムのプロンプト 

    x86 システムのプロンプト 

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

    #

    #

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

    #

    #

    0 (電源切断レベル) 

    ok または >

    Press any key to reboot

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

    hostname console login:

    hostname console login:


例 10–5 uadmin コマンドを使ってシステムをシャットダウンする


# uadmin 2 0
syncing file systems... done
Program terminated


例 10–6 スタンドアロンシステムを実行レベル 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
Press any key to reboot

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



例 10–7 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. 

SINGLE USER MODE

Root password for system maintenance (control-d to bypass): xxxxxx
single-user privilege assigned to /dev/console.
Entering System Maintenance Mode
# 

参照

システムをシャットダウンした理由にかかわらず、すべてのファイルリソースが利用可能かつユーザーがログイン可能な、実行レベル 3 にシステムが戻ることを想定しているでしょう。システムをマルチユーザーレベルに戻す手順については、第 12 章Oracle Solaris システムのブート (手順)を参照してください。

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

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

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

すべてのシステムデバイスの電源を落とす前に、前の節の説明に従って、システムを正常にシャットダウンしてください。

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

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

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

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

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

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

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

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

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