Oracle Solaris ソフトウェアは、電子メールやネットワークソフトウェアをいつでも利用できるように、停止することなく動作するように設計されています。しかし、システム管理作業を行う場合や緊急事態が発生した場合は、システムをシャットダウンして安全に電源を切断できる状態にする必要があります。場合によっては、システムを一部のシステムサービスしか利用できない中間の実行レベルまで移行する必要があります。
次のような場合がそれに該当します。
ハードウェアを追加または削除する
予定された停電に備える
ファイルシステムの保守を行う (バックアップなど)
システムのシャットダウンを必要とするシステム管理作業の詳細については、第 9 章システムのシャットダウンとブート (概要)を参照してください。
システムの電源管理機能を使用する方法については、pmconfig(1M) のマニュアルページを参照してください。
システムをシャットダウンするもっとも基本的な方法は、init と shutdown の各コマンドを使用する方法です。どちらのコマンドも、システムを「正常な状態でシャットダウンする」ため、すべてのファイルシステムに対する変更がディスクに書き出され、すべてのシステムサービス、プロセス、オペレーティングシステムが正常に終了します。
システムのアボートキーシーケンスを使用したり、電源をオフにしてからオンにする方法では、システムサービスが突然終了してしまうので、正常なシャットダウン方法とはいえません。しかし、緊急時には、これらの方法が必要となる場合もあります。システムの復旧方法については、第 12 章Oracle Solaris システムのブート (手順) and第 13 章Oracle Solaris ブートアーカイブの管理 (手順)を参照してください。
Solaris 10 6/06 以降のリリースが稼働する x86 システムでは、電源ボタンを押して離すとシステムの正常なシャットダウンが開始されます。この方法は、init 5 コマンドを使用するのと同等です。
次の表に、各種シャットダウンコマンドとその用途を要約します。
表 10–1 シャットダウンコマンド
shutdown コマンドは起動時に、ログインしているすべてのユーザーと、システムリソースをマウントしているすべてのシステムに、警告と最終メッセージという形でシャットダウンを通知します。
サーバーをシャットダウンする必要がある場合に、init コマンドではなく shutdown コマンドを使用することを推奨するのはこのためです。どちらを使用するにしても、ユーザーには予定されているシャットダウンについてあらかじめ電子メールで知らせるようにしてください。
システム上のどのユーザーに通知する必要があるかを確認するには、who コマンドを使用します。このコマンドは、システムの現在の実行レベルを調べる場合にも役立ちます。詳細は、「システムの実行レベルを確認する」 と、who(1) のマニュアルページを参照してください。
次の例は、システムにログインしているユーザーを表示する方法を示しています。
$ who holly console May 7 07:30 kryten pts/0 May 7 07:35 (starlite) lister pts/1 May 7 07:40 (bluemidget) |
1 列目のデータはログインしているユーザーのユーザー名を示します。
2 列目のデータはログインしているユーザーの端末回線を示します。
3 列目のデータはユーザーがログインした日時を示します。
4 列目のデータ (省略可能) は、ユーザーがリモートシステムからログインしている場合のホスト名を示します。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
システムにユーザーがログインしているか調べます。
# who |
ログインしているすべてのユーザーがリスト表示されます。システムがシャットダウンされることを、メールかブロードキャストメッセージで知らせることをお勧めします。
# shutdown -iinit-level -ggrace-period -y |
システムをデフォルトの S 以外の init レベルにします。0、1、2、5、6 のいずれかを指定できます。
実行レベル 0 および 5 は、システムのシャットダウン用に予約された状態です。実行レベル 6 はシステムをリブートします。実行レベル 2 はマルチユーザーオペレーティング状態として使用できます。
システムがシャットダウンするまでの時間 (秒) を示します。デフォルト値は 60 秒です。
ユーザーの介入なしにシャットダウンを継続します。このオプションを指定しないと、シャットダウンを継続するかどうか 60 秒後にたずねられます。
詳細は、shutdown(1M) のマニュアルページを参照してください。
シャットダウンを継続するかどうかたずねられたら、y を入力します。
Do you want to continue? (y or n): y |
-y オプションを指定した場合、このプロンプトは表示されません。
プロンプトが表示されたら、スーパーユーザーのパスワードを入力します。
Type Ctrl-d to proceed with normal startup, (or give root password for system maintenance): xxxxxx |
システム管理作業を終了したら、Control + D を押してデフォルトの実行レベルに戻ります。
次の表を使用して、システムが shutdown コマンドで指定した実行レベルに移行したことを確認します。
指定した実行レベル |
SPARC システムのプロンプト |
x86 システムのプロンプト |
---|---|---|
S (シングルユーザーレベル) |
# |
# |
0 (電源切断レベル) |
ok または > |
Press any key to reboot |
実行レベル 3 (リモートリソースを共有できるマルチユーザーレベル) |
hostname console login: |
hostname console login: |
次の例では、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 # |
次の例では、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 にしてすべてのデバイスの電源を落とす場合は、「すべてのデバイスの電源を落とす方法」を参照してください。
次の例では、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 システムのブート (手順)を参照してください。
スタンドアロンシステムをシャットダウンする必要がある場合は、次の手順を実行します。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
システムをシャットダウンします。
# init 5 |
詳細は、init(1M) のマニュアルページを参照してください。
別の方法として、uadmin コマンドを使ってシステムをシャットダウンすることもできます。
# uadmin 2 0 |
Solaris 10 6/06 以降のリリースが稼働する x86 システムを使用する場合、電源ボタンを押して離すことで、システムの正常なシャットダウンの開始とシステムの電源切断を行えます。
この機能は、init 5 コマンドを使ってシステムをシャットダウンするのと同等です。詳細については、「システムのシャットダウンとブートに関する新機能」を参照してください。
次の表を使用して、システムが init コマンドで指定した実行レベルに移行したことを確認します。
指定した実行レベル |
SPARC システムのプロンプト |
x86 システムのプロンプト |
---|---|---|
S (シングルユーザーレベル) |
# |
# |
2 (マルチユーザーレベル) |
# |
# |
0 (電源切断レベル) |
ok または > |
Press any key to reboot |
3 (NFS リソースを共有できるマルチユーザーレベル) |
hostname console login: |
hostname console login: |
# uadmin 2 0 syncing file systems... done Program terminated |
次の例では、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 にしてすべてのデバイスの電源を落とす場合は、「すべてのデバイスの電源を落とす方法」を参照してください。
次の例では、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 システムのブート (手順)を参照してください。