5.5. Shutting Down the System
Fortunately, shutting down the Linux system is much simpler than
booting and startup. However, it's not just a matter of hitting the
reset switch. Linux, like all Unix systems, buffers disk reads and
writes in memory. This means disk writes are delayed until
absolutely necessary, and multiple reads on the same disk block are
served directly from RAM. This greatly increases performance as
disks are extremely slow relative to the CPU.
The problem is that if the system were to be suddenly powered down or
rebooted, the buffers in memory would not be written to disk, and
data could be lost or corrupted.
/sbin/update is a program
started from /etc/rc.d/rc.sysinit on most
systems; it flushes dirty buffers (ones that have been changed since
they were read from the disk) back to disk every five seconds to
prevent serious damage
from occurring should the system crash. However, to be completely safe,
the system needs to undergo a "safe" shutdown before rebooting.
This will not only ensure that disk buffers are properly synchronized, but
also allow all running processes to exit cleanly.
shutdown is the general, all-purpose command used to halt or
reboot the system. As root, you can issue the command:
/sbin/shutdown -r +10
to cause the system to reboot in ten minutes.
The -r switch indicates the system should be
rebooted after shutdown, and +10 is the amount of time to wait
(in minutes) until shutting down. The system will print a warning message
to all active terminals, counting down until the shutdown time.
You can add your own warning message by including it on the command
line, as in:
/sbin/shutdown -r +10 "Rebooting to try new kernel"
You can also specify an absolute time to shutdown, as in:
/sbin/shutdown -r 13:00
to reboot at 1:00 pm. Likewise, you can say:
/sbin/shutdown -r now
to reboot immediately (after the safe shutdown process).
Using the -h switch, instead of -r, will cause the system to
simply be halted after shutdown; you can then turn off the system power
without fear of losing data. If you specify neither
-h nor -r, the system
will go into single-user mode.
As we saw in the section "Section 5.3.2, "init, inittab, and rc files"," you can have
init catch the Ctrl-Alt-Del key sequence and
execute a shutdown command in response to it. If
you're used to rebooting your system in this way it might be good idea
to check that your /etc/inittab contains a
ctrlaltdel entry. Note that you should never reboot
your Linux system by pressing the system power switch or the reboot
switch on the front panel of your machine. Unless the system is
flat-out hung (a rare occurrence), you should always use
shutdown. The great thing about a multiprocessing
system is that one program may hang, but you can almost always switch
to another window or virtual console to recover.
shutdown provides a number of other options. The
-c switch will cancel a currently running
shutdown. (Of course, you can kill the process by
hand using kill, but shutdown
-c might be easier.) The -k
switch will print the warning messages but not actually shut down the system. See
the manual page for shutdown if you're interested
in the gory details.
 |  |  | 5.4. Single-User Mode |  | 5.6. The /proc filesystem |
Copyright © 2001 O'Reilly & Associates. All rights reserved.
|
|