Online Book Reader

Home Category

Running Linux, 5th Edition - Matthias Kalle Dalheimer [339]

By Root 1197 0
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, because 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. The kernel flushes dirty buffers (ones that have been changed since they were read from the disk) back to disk every five seconds or so (depending on configuration) 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 10 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 the following example:

/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 p.m. 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 "init, inittab, and rc Files," you can have init catch the Ctrl-Alt-Delete 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 a good idea to check that your /etc/inittab file 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(8) if you're interested in the gory details.

A Graphical Runlevel Editor: KSysV

If you think that editing runlevels by copying symbolic links around is too arcane and error-prone, you may want to try a graphical runlevel editor. Your distribution most likely ships one, but if you have installed the KDE Desktop Environment, you probably have KSysV anyway.[*] You can start this program either from the K menu (as System → Service Configuration → KSysV in KDE's normal distribution) or by invoking ksysv on any command line.

If you are starting KSysV for the first time, it will ask you a few questions about your distribution so that it can determine the right location of your runlevel configuration files. Then it will show its main screen, as seen in Figure 17-1.

To the left, you can see the list of available services, and to the right of it are two lines of boxes; the upper line for entering runlevels, the lower line for leaving them. For each runlevel,

Return Main Page Previous Page Next Page

®Online Book Reader