Solaris ソフトウェアは、電子メールやネットワークソフトウェアをいつでも利用できるように、停止することなく動作するように設計されています。しかし、システム管理作業を行う場合や緊急事態が発生した場合は、システムをシャットダウンして安全に電源を切断できる状態にする必要があります。次のような場合には、システムを一部のシステムサービスしか利用できない中間の実行レベルまで移行する必要があります。
ハードウェアを追加または削除する。
予告済みの停電に備える。
ファイルシステムの保守 (バックアップなど) を行う 。
システムをシャットダウンする必要があるシステム管理作業の詳細については、第 10 章「システムのシャットダウンとブート (概要)」を参照してください。
システムの電源管理機能を使用する方法については、『Solaris 共通デスクトップ環境 ユーザーズ・ガイド』を参照してください。
システムをシャットダウンする最も基本的な方法は、init コマンドおよび shutdown コマンドを使用する方法です。どちらのコマンドもシステムを「クリーンな状態でシャットダウン」するため、すべてのファイルシステムに対する変更がディスクに書き出され、すべてのシステムサービス、プロセス、オペレーティングシステムが正常に終了します。
システムのアボートキーシーケンスを使用したり、電源をオフにしてからオンにする方法では、システムサービスが突然終了してしまうので、クリーンなシャットダウン方法とはいえません。しかし、緊急時には、これらの方法を使用しなければならない場合もあります。システムの復元方法については、第 13 章「SPARC: システムのブート (手順)」または第 14 章「IA: システムのブート (手順)」を参照してください。
表 12-1 に、いくつかのシャットダウンコマンドとその用途を要約します。
表 12-1 シャットダウンコマンド
shutdown コマンドは起動時に、ログインしているすべてのユーザーと、システムリソースをマウントしているすべてのシステムに、警告と最終メッセージという形でシャットダウンを通知します。
サーバーをシャットダウンする必要がある場合に、init コマンドではなくshutdown コマン ドを使用することを推奨するのはこのためです。どちらを使用するにしても、ユーザーには予定されているシャットダウンについてあらかじめ電子メールで知らせるようにしてください。
システム上のどのユーザーに通知する必要があるかを確認するには、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) |
ログインしているユーザーのユーザー名
ログインしているユーザーの端末回線
ユーザーがログインした日時
(省略可能) リモートシステムからログインしているユーザーのホスト名
サーバーをシャットダウンする必要がある場合は、次の手順に従います。
スーパーユーザーになります。
システムにユーザーがログインしているか調べます。
# who |
ログインしているすべてのユーザーが表示されます。システムがシャットダウンされることを、メールかブロードキャストメッセージで知らせることをお勧めします。
# shutdown -iinit-level -ggrace-period -y |
-iinit-level |
システムをデフォルトの S 以外の init レベルにする。0、1、2、5、6 のいずれかを指定できる |
-g grace-period |
システムがシャットダウンするまでの時間 (秒) を示す。デフォルト値は 60 秒 |
-y |
ユーザーの介入なしにシャットダウンを継続する。このオプションを指定しないと、シャットダウンを継続するかどうか 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): xxx |
システム管理作業を終了したら、Control + D を押してデフォルトの実行レベルに戻ります。
次の表を使用して、システムが shutdown コマンドで指定した実行レベルに移行したことを確認します。
指定した実行レベル |
SPARC システムのプロンプト |
IA システムのプロンプト |
---|---|---|
S (シングルユーザーレベル) |
# |
# |
0 (電源切断レベル) |
ok または > |
type any key to continue |
実行レベル 3 (リモートリソースを共有できるマルチユーザーレベル) |
hostname console login: |
hostname console login: |
次の例では、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 ... # |
次の例では、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 にしてすべてのデバイスの電源を落とす場合は、「すべてのデバイスの電源を落とす方法」を参照してください。
次の例では、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 章「IA: システムのブート (手順)」を参照してください。
スタンドアロンシステムをシャットダウンする必要がある場合は、次の手順で行なってください。
スーパーユーザーになります。
システムをシャットダウンします。
# init run-level |
run-level は新しい実行レベルを指定します。
詳細は、init(1M) のマニュアルページを参照してください。
次の表を使用して、システムが init コマンドで指定した実行レベルに移行したことを確認します。
指定した実行レベル |
SPARC システムのプロンプト |
IA システムのプロンプト |
---|---|---|
S (シングルユーザーレベル) | # | # |
2 (マルチユーザーレベル) | # | # |
0 (電源切断レベル) | ok または > | type any key to continue |
3 (NFS リソースを共有できるマルチユーザーレベル) |
hostname console login: |
hostname console login: |
次の例では、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 にしてすべてのデバイスの電源を落とす場合は、「すべてのデバイスの電源を落とす方法」を参照してください。
次の例では、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 章「IA: システムのブート (手順)」を参照してください。