この章では、システムのシャットダウン手順について説明します。この章で説明する手順は次のとおりです。
この章で説明する主な内容は次のとおりです。
使用可能な実行レベルについての概要は、第 6 章「実行レベルとブートファイルの手順」を参照してください。
Solaris system software は、電子メールとネットワーク資源をいつでも利用できるように停止することなく動作するように設計されています。しかし、システム管理作業を行う場合や緊急事態が発生した場合は、システムをシャットダウンして安全に電源を切断できる状態にするか、一部のシステムサービスしか提供しない中間の実行レベルまで移行する必要があります。たとえば次のような場合です。
ハードウェアを追加または削除する。
予告済みの停電に備える。
ファイルシステムの保守を行う (バックアップなど)。
システムをシャットダウンする必要があるシステム管理作業についての詳細は、第 5 章「システムのシャットダウンとブートの概要」を参照してください。
システムをシャットダウンする第 1 の方法は、init および shutdown コマンドを使用する方法です。どちらのコマンドもシステムを「きれいに シャットダウン」します。つまり、すべてのファイルシステムに対する変更はディスクに書き出され、すべてのシステムサービス、プロセス、オペレーティングシステムが正常に終了します。
システムのアボートキーシーケンスを使用したり、電源をオフにしてからオンにする方法では、システムサービスが突然終了してしまうので、きれいなシャットダウン方法とはいえません。しかし、緊急時には、これらの方法を使用しなければならない場合もあります。システムの復元手順については、第 8 章「SPARC システムのブートの手順」または第 9 章「Intel:x86 システムのブートの手順」を参照してください。
システムを実行レベル 2 または S から実行レベル 3 (NFS 資源が共有されたマルチユーザー状態) にきれいに移行する方法はありません。システムを中間の実行レベルに移行するには、いったん実行レベル 0 にしてからブートして実行レベル S にするのが最もよい方法です。
表 7-1 に、いくつかのシャットダウンコマンドとその用途を要約します。
表 7-1 シャットダウンコマンド
この章およびこのマニュアル全体を通して、/usr/ucb/shutdown コマンドではなく /usr/sbin/shutdown コマンドを使用します。
次のような場合は、すべてのシステムデバイスの電源を落とす必要があります。
ハードウェアを置換または追加する。
システムの設置場所を変更する。
予測可能な停電や自然災害 (接近中の雷雨など) に備える。
システムデバイスとは、CPU、モニター、外部デバイス (ディスク、テープ、プリンタ) などを意味します。
シャットダウン手順を実行してから、すべてのデバイスの電源を落としてください。
shutdown コマンドは起動時に、ログインしているすべてのユーザーおよびシステム資源をマウントしているすべてのシステムに、警告と最終メッセージという形でシャットダウンを通知します。
サーバーをシャットダウンする場合に、init コマンドではなく shutdown コマンドを使用することを推奨するのはこのためです。どちらを使用するにしても、ユーザーには予定されているシャットダウンについてあらかじめ電子メールで知らせておくようにしてください。
システム上のどのユーザーに通知する必要があるかを知るには、who コマンドを使用します。who コマンドは、システムの現在の実行レベルを知りたい場合にも使用できます。システム上のどのユーザーに通知する必要があるかを知るには、who コマンドを使用します。who コマンドは、「システムの実行レベルを確認する方法」で説明されているシステムの現在の実行レベルを知りたい場合にも使用できます。
who コマンドの出力例を以下に示します。
$ who 1holly2 console May 7 07:30 3kryten pts/0 May 7 07:35 (starbug) 4lister pts/1 May 7 07:40 (bluemidget)
1. ログインしているユーザーのユーザー名。
2. ログインしているユーザーの端末回線。
3. ユーザーがログインした日時。
4. (省略可能) リモートシステムからログインしているユーザーのホスト名。
スーパーユーザーになります。
システムにユーザーがログインしているかどうか調べます。
# who
ログインしているすべてのユーザーが表示されます。システムがシャットダウンされることを、メールかブロードキャストメッセージで知らせることもできます。
shutdown コマンドを使用してシステムをシャットダウンします。
# 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 コマンドと boot コマンドを使用して、3 分後に、SPARC システムを実行レベル S (シングルユーザーモード) にしています。
# who root console May 7 08:35 # shutdown -i0 -g180 -y Shutdown started. Wed May 7 08:39:17 MDT 1997 Broadcast Message from root (console) on mars Wed May 7 08:39:18 The system will be shut down in 1 minute Broadcast Message from root (console) on mars Wed May 7 08:39:50 The system will be shut down in 30 seconds . . . INIT: New run level: 0 The system is coming down. Please wait. syncing file systems... [7] [7] [5] done Program terminated ok boot -s Booting from: sd(0,0,0) -s SunOS Release 5.6 Version generic [UNIX(R) System V Release 4.0] Copyright (c) 1983-1997, Sun Microsystems, Inc. configuring network interfaces: le0. Hostname: mars 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 May 7 08:28 rimmer pts/1 May 7 08:29 (starbug) pmorph pts/2 May 7 08:30 (bluemidget) (ログインしているユーザーにメールを送る) # shutdown -i0 -g300 -yShutdown started. Wed May 7 09:49:01 PDT 1997 Broadcast Message from root (console) on pluto Wed May 7 09:46:58... The system will be shut down in 3 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 May 7 08:40 rimmer pts/1 May 7 08:45 (starbug) pmorph pts/2 May 7 08:50 (bluemidget) (ログインしているユーザーにメールを送る) # shutdown -i6 -g120 -yShutdown started. Wed May 7 09:52:06 PDT 1997 Broadcast Message from root (console) on pluto Wed May 7 09:46:58... 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 章「Intel:x86 システムのブートの手順」を参照してください。
スーパーユーザーになります。
init コマンドを使用してシステムをシャットダウンします。
# 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 コマンドと boot コマンドを使用して、SPARC システムを実行レベル S (シングルユーザー状態) にしています。
# init 0 # INIT: New run level: 0 The system is coming down. Please wait. . . . syncing file systems... [7] [7] [5] done Program terminated ok boot -s Booting from: sd(0,0,0) -s SunOS Release 5.6 Version generic [UNIX(R) System V Release 4.0] Copyright (c) 1983-1997, Sun Microsystems, Inc. configuring network interfaces: le0. Hostname: venus 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 章「Intel:x86 システムのブートの手順」を参照してください。