1. shutdown
The shutdown command safely shuts down the system. Some users will shut down Linux by directly cutting off the power supply, which is very dangerous. Because Linux is different from Windows, there are many processes running in the background, so forced shutdown may cause the data of the process to be lost, put the system in an unstable state, and even damage the hardware equipment in some systems.
If you use the shutdown command before shutting down the system, the system administrator will notify all logged in users that the system will be shut down.
And the login command will be frozen, that is, new users can no longer log in. It is possible to shut down directly or delay the shutdown for a certain period of time, and it is also possible to restart. This is determined by the fact that all processes will receive signals sent by the system. This gives programs like vi time to save the document currently being edited, and programs like mail and news can exit normally, etc.
Shutdown performs its job by sending a signal [signal] to the init program, asking it to change the runlevel.
Runlevel 0 is used to shut down [halt], runlevel 6 is used to reactivate [reboot] the system, and runlevel 1 is used to put the system into a state where management work can be carried out; this is the default, assuming there is no -h does not have the -r parameter for shutdown. To understand what actions were taken during the shutdown (halt) or restart (reboot) process, you can see the runlevels-related information in this file /etc/inittab.
shutdown parameter description:
[-t] tells init how long to shut down before changing to other runlevels.
[-r] Restart the calculator.
[-k] does not actually shut down, but only sends a warning signal to each login [login].
[-h] Turn off the power after shutdown [halt].
[-n] No need to init, but shut down by yourself. Using this option is discouraged, and the consequences of this option are not always what you expect.
[-c] cancel current process Cancel the shutdown process currently being executed. So of course this option has no time parameter, but you can enter a message to explain it, and this message will be sent to each user.
[-f] Ignore fsck when restarting the calculator [reboot].
[-F] Force fsck when restarting the calculator [reboot].
[-time] Set the time before shutdown [shutdown].
2. Halt is the simplest shutdown command
In fact, halt is to call shutdown -h. When halt is executed, the application process is killed, the sync system call is executed, and the kernel is stopped after the file system write operation is completed.
Parameter description:
[-n] Prevent sync system calls. It is used after patching the root partition with fsck to prevent the kernel from overwriting the patched superblock with an old version of the superblock [superblock].
[-w] is not a real restart or shutdown, it just writes wtmp [/var/log/wtmp] records.
[-d] Do not write wtmp records [included in option [-n]].
[-f] Force shutdown or restart without calling shutdown.
[-i] Before shutting down (or restarting), turn off all network interfaces.
[-p] This option is the default option. Just call poweroff when shutting down.
3. Reboot
The working process of reboot is almost the same as halt, but it causes the host to restart, while halt is to shut down. Its parameters are similar to halt.
4. init
init is the ancestor of all processes, and its process number is always 1, so sending the TERM signal to init will terminate all user processes, daemon processes, etc. shutdown uses this mechanism. init defines 8 runlevels, init 0 is shutdown, and init 1 is restart. There can be a long discussion about init, so I won’t go into it here. There are also telinit commands that can change the running level of init. For example, telinit -iS can make the system enter single-user mode, and the information and waiting time when using shutdown are not obtained.
For more detailed explanations of multiple Linux shutdown commands and related articles, please pay attention to the PHP Chinese website!