Solaris システムソフトウェアは、電子メールとネットワーク資源をいつでも利用できるように停止することなく動作するように設計されています。しかし、システム管理作業を行う場合や緊急事態が発生した場合は、システムをシャットダウンして安全に電源を切断できる状態にするか、一部のシステムサービスしか提供しない中間の実行レベルまで移行する必要があります。たとえば次のような場合です。
ハードウェアを追加または削除する。
予告済みの停電に備える。
ファイルシステムの保守を行う (バックアップなど)。
システムをシャットダウンする必要があるシステム管理作業についての詳細は、第 5 章「システムのシャットダウンとブートの概要」を参照してください。
システムをシャットダウンする第 1 の方法は、init コマンドおよび shutdown コマンドを使用する方法です。どちらのコマンドもシステムを「正常に シャットダウン」します。つまり、すべてのファイルシステムに対する変更はディスクに書き出され、すべてのシステムサービス、プロセス、オペレーティングシステムが正常に終了します。
システムのアボートキーシーケンスを使用したり、電源をオフにしてからオンにする方法では、システムサービスが突然終了してしまうので、正常なシャットダウン方法とはいえません。しかし、緊急時には、これらの方法を使用しなければならない場合もあります。システムの復元手順については、第 8 章「SPARC: システムのブートの手順」または第 9 章「x86: システムのブートの手順」を参照してください。
表 7-1 に、いくつかのシャットダウンコマンドとその用途を要約します。
表 7-1 シャットダウンコマンド
この章およびこのマニュアル全体を通して、/usr/ucb/shutdown コマンドではなく /usr/sbin/shutdown コマンドを使用します。
次のような場合は、すべてのシステムデバイスの電源を落とす必要があります。
ハードウェアを置換または追加する。
システムの設置場所を変更する。
予測可能な停電や自然災害 (接近中の雷雨など) に備える。
システムデバイスとは、CPU、モニター、外部デバイス (ディスク、テープ、プリンタ) などを意味します。
シャットダウン手順を実行してから、すべてのデバイスの電源を落としてください。
shutdown コマンドは起動時に、ログインしているすべてのユーザーおよびシステム資源をマウントしているすべてのシステムに、警告と最終メッセージという形でシャットダウンを通知します。
サーバーをシャットダウンする場合に、init コマンドではなく shutdown コマンドを使用することを推奨するのはこのためです。どちらを使用するにしても、ユーザーには予定されているシャットダウンについてあらかじめ電子メールで知らせておくようにしてください。
システム上のどのユーザーに通知する必要があるかを知るには、who コマンドを使用します。who コマンドは、システムの現在の実行レベルを知りたい場合にも使用できます。システム上のどのユーザーに通知する必要があるかを知るには、who コマンドを使用します。who(1) コマンドは、「システムの実行レベルを確認する方法」で説明されているシステムの現在の実行レベルを知りたい場合にも使用できます。
who コマンドの出力例を以下に示します。
スーパーユーザーになります。
システムにユーザーがログインしているかどうか調べます。
# who |
ログインしているすべてのユーザーが表示されます。システムがシャットダウンされることを、メールかブロードキャストメッセージで知らせることもできます。
shutdown(1M) コマンドを使用してシステムをシャットダウンします。
# shutdown -iinit-state -ggrace-period -y |
|
-iinit-state |
システムをデフォルトの S 以外の init 状態にする。0、1、2、5、6 のいずれかを指定できる。 |
|
-ggrace-period |
シャットダウンするまでの時間 (秒) を指定する。デフォルトは 60 秒。 |
|
-y |
ユーザーの介入なしにシャットダウンを継続する。このオプションを指定しないと、シャットダウンを継続するかどうか 60 秒後にたずねられる。 |
シャットダウンを継続するかどうかたずねられたら、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 |
システム管理作業を終了したら、Ctrl-d を押してデフォルトの実行レベルに戻ります。
システムが、shutdown コマンドで指定した実行レベルに移行したことを確認する方法を以下の表に要約します。
|
移行後の実行レベル |
SPARC システムの場合 |
x86 システムの場合 |
|---|---|---|
|
実行レベル S (シングルユーザーモード) |
# |
# |
|
実行レベル 0 (電源切断状態) |
ok または > |
type any key to continue |
|
実行レベル 3 (リモート資源が共有されたマルチユーザー状態) |
hostname console login: |
hostname console login: |
次の例では、shutdown コマンドを使用して、3 分後に、SPARC システムを実行レベル S (シングルユーザーモード) にしています。
# who root console Jun 10 14:15 # shutdown -g180 -y Shutdown started. Wed Jun 10 14:15:25 MDT 1998 Broadcast Message from root (console) on mars Wed Jun 10 14:15:26... The system mars will be shut down in 3 minutes . . . Broadcast Message from root (console) on mars Wed Jun 10 14:17:58... The system mars 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. 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 ... # |
次の例では、shutdown コマンドを使用して、SPARC システムを 5 分後に実行レベル 0 にしています。確認用プロンプトが表示されないように -y オプションを指定しています。
# who kryten console Jun 10 14:22 rimmer pts/1 Jun 10 14:23 (starbug) pmorph pts/2 Jun 10 14:24 (bluemidget) (ログインしているユーザーにメールを送る) # shutdown -i0 -g300 -y Shutdown started. Wed Jun 10 14:30:32 MDT 1998 Broadcast Message from root (console) on pluto Wed Jun 10 14:30:32... The system will be shut down in 5 minutes . . . INIT: New run level: 0 The system is coming down. Please wait. . . . The system is down. syncing file systems... [11] [9] [5] done Program terminated Type help for more information ok |
システムを実行レベル 0 にしてすべてのデバイスの電源を落とす場合は、「すべてのデバイスの電源を落とす方法」を参照してください。
次の例では、shutdown コマンドを使用して SPARC システムをリブートし、2 分後に実行レベル 3 にしています。確認用プロンプトが表示されないように -y オプションを指定しています。
# who kryten console Jun 10 14:35 rimmer pts/1 Jun 10 14:40 (starbug) pmorph pts/2 Jun 10 14:45 (bluemidget) (ログインしているユーザーにメールを送る) # shutdown -i6 -g120 -y Shutdown started. Wed Jun 10 14:34:26 MDT 1998 Broadcast Message from root (console) on pluto Wed Jun 10 14:34:26 MDT 1998 The system will be shut down in 1 minute 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... [11] [9] [5] done rebooting... . . . pluto console login: |
システムをシャットダウンした理由が何であれ、最終的には、すべてのファイル資源が使用でき、ユーザーがログインできる実行レベル 3 に戻すことになるでしょう。システムをマルチユーザー状態に移行する手順については、第 8 章「SPARC: システムのブートの手順」または第 9 章「x86: システムのブートの手順」を参照してください。
スーパーユーザーになります。
init(1M) コマンドを使用してシステムをシャットダウンします。
# init run-level |
|
run-level |
新しい実行レベル |
システムが、init コマンドで指定した実行レベルに移行したことを確認する方法を以下の表に要約します。
次の例では、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 に移行してすべてのデバイスの電源を落とす場合は、「すべてのデバイスの電源を落とす方法」を参照してください。
次の例では、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 に戻すことになるでしょう。システムをマルチユーザー状態に移行する手順については、第 8 章「SPARC: システムのブートの手順」または第 9 章「x86: システムのブートの手順」を参照してください。