Sun Microsystems, Inc.
spacerspacer
spacer www.sun.com docs.sun.com |
spacer
black dot
 
 
  Previous   Contents   Next 
   
 
Chapter 12

Shutting Down a System (Tasks)

This chapter describes the procedures for shutting down systems. This is a list of the step-by-step instructions in this chapter.

This is a list of the overview information in this chapter.

For overview information about system run levels, see Chapter 11, Run Levels and Boot Files (Tasks).

Shutting Down the System

Solaris software is designed to run continuously so that the electronic mail and network software can work correctly. However, some system administration tasks and emergency situations require that the system is shut down to a level where it is safe to remove power. In some cases, the system needs to be brought to an intermediate level, where not all system services are available, such as the following:

  • Adding or removing hardware

  • Preparing for an expected power outage

  • Performing file system maintenance, such as a backup

For a complete list of system administration tasks that require a system shutdown, see Chapter 10, Shutting Down and Booting a System (Overview).

For information on using your system's power management features, see Solaris Common Desktop Environment: User's Guide.

System Shutdown Commands

The use of the init and shutdown commands are the primary ways to shut down a system. Both commands perform a clean shutdown of the system, which means that all file system changes are written to the disk, and all system services, processes, and the operating system are terminated normally.

The use of a system's stop key sequence or turning a system off and then on are not clean shutdowns because system services are terminated abruptly. However, it is sometimes necessary to use these actions in emergency situations. For instructions on system recovery techniques, see Chapter 13, SPARC: Booting a System (Tasks) or Chapter 14, IA: Booting a System (Tasks).

The following table describes the various shutdown commands and provides recommendations for using them.

Table 12-1 Shutdown Commands

Command

Description

When To Use

shutdown

An executable shell script that calls the init program to shut down the system. The system is brought to run level S by default.

Recommended for servers running at run level 3 because users are notified of the impending shut down. Also notified are the systems that are mounting resources from the server that is being shut down.

init

An executable that kills all active processes and syncs the disks before changing run levels.

Recommended for standalone systems when other users will not be affected. Provides a faster system shutdown because users are not notified of the impending shutdown.

reboot

An executable that syncs the disks and passes boot instructions to the uadmin system call, which, in turn, stops the processor.

Not recommended. Use the init command instead.

halt

An executable that syncs the disks and stops the processor.

Not recommended because it doesn't execute the /etc/rc0 script. This script stops all processes, syncs the disks, and unmounts any remaining file systems.

User Notification of System Down Time

When the shutdown command is initiated, a warning followed by a final shutdown message is broadcast to all users who are currently logged onto the system and all systems that are mounting resources from the affected system.

For this reason, the shutdown command is recommended over the init command when you need to shut down a server. When you use either command, you might want to give users more notice by sending them a mail message about any scheduled system shutdown.

Use the who(1) command to determine which users on the system need to be notified. This command is also useful for determining a system's current run level. See "How to Determine a System's Run Level".

How to Determine Who Is Logged in to a System

  1. Log into the system to be shut down.

  2. Display logged-in users.

    $ who

Example--Determining Who Is Logged in to a System

The following example shows how to display who is logged in to the system.

$ 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)
  1. Identifies the user name of the logged-in user.

  2. Identifies the terminal line of the logged-in user.

  3. Identifies the date and time that the user logged in.

  4. (Optional) Identifies the host name if a user is logged in from a remote system.

How to Shut Down a Server

Use this procedure when you need to shut down a server.

  1. Become superuser.

  2. Find out if users are logged in to the system.

    # who

    A list of all logged-in users is displayed. You might want to send mail or broadcast a message to let users know that the system is being shut down.

  3. Shut down the system.

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

    -iinit-level

    Brings the system to an init level that is different from the default of S. The choices are 0, 1, 2, 5, and 6.

    -ggrace-period

    Indicates a time (in seconds) before the system is shut down. The default is 60 seconds.

    -y

    Continues to shut down the system without intervention. Otherwise, you are prompted to continue the shutdown process after 60 seconds.

    For more information, see shutdown(1M).

  4. If you are asked for confirmation, type y.

    Do you want to continue? (y or n): y

    If you used the shutdown -y command, you will not be prompted to continue.

  5. Type the superuser password, if prompted.

    Type Ctrl-d to proceed with normal startup,
    (or give root password for system maintenance): xxx
  6. After you have finished the system administration tasks, press Control-D to return to the default system run level.

  7. Use the following table to verify that the system is at the run level that you specified in the shutdown command.

    Specified Run Level

    SPARC System Prompt

    IA System Prompt

    S (single-user level)

    #

    #

    0 (power-down level)

    ok or >

    type any key to continue

    Run level 3 (multiuser level with remote resources shared)

    hostname console login:

    hostname console login:

 
 
 
  Previous   Contents   Next