Shutting Linux Down
To shutdown the system, the system administrator will type something like "shutdown –h now". This will invoke the shutdown program which signals the init process (still running as a daemon) to change the runlevel to run level 0. Run level 0 is used to halt the system, and runlevel 6 is used to reboot the system. Then init is told to change the runlevel, it will send the SIGTERM signal to all processes not defined in the new runlevel. Then init will wait 5 seconds and send the SIGKILL signal, forcibly terminating these processes.
Then init will run the script file "/etc/rc.d/rc" which runs all kill scripts, then all startup scripts, of course in run level 0, there are no startup scripts. Kill scripts are run with the command "action "Stopping $subsys" $I stop". Basically this means that all kill scripts are run with the stop option. The stop scripts are generally run in reverse order from the way the startup scripts are run. This is because you would want to do things like unmount file systems after running all other programs, since many subsystems are set to depend on other subsystems. Note, that the last kill script is "/etc/rc.d/init.d/halt". This script takes care of unmounting all filesystems with the command "umount -a" which unmounts all file systems in "/etc/fstab" (filesystem table). Therefore if you mount filesystems after the system is booted, you don't have to worry about unmounting it if you are worried about a graceful shutdown. The system takes care of it.
|
|