I just want to know difference between in

  • reboot
  • init 6
  • shutdown -r now

and which is the safest and the best?


4 Answers 4


There is no difference in them. Internally they do exactly the same thing:

  • reboot uses the shutdown command (with the -r switch). The shutdown command used to kill all the running processes, unmount all the file systems and finally tells the kernel to issue the ACPI power command. The source can be found here. In older distros the reboot command was forcing the processes to exit by issuing the SIGKILL signal (still found in sources, can be invoked with -f option), in most recent distros it defaults to the more graceful and init friendly init 1 -> shutdown -r. This ensures that daemons clean up themselves before shutdown.

  • init 6 tells the init process to shutdown all of the spawned processes/daemons as written in the init files (in the inverse order they started) and lastly invoke the shutdown -r now command to reboot the machine

Today there is not much difference as both commands do exactly the same, and they respect the init scripts used to start services/daemons by invoking the shutdown scripts for them. Except for reboot -f -r now as stated below

There is a small explanation taken from manpages of why the reboot -f is not safe:

  -f, --force
    Force immediate halt, power-off, reboot. Don't contact the init system.


Forgot to mention, in upcoming RHEL distributions you should use the new systemctl command to issue poweroff/reboot. As stated in the manpages of reboot and shutdown they are "a legacy command available for compatibility only." and the systemctl method will be the only one safe.

  • Sometimes my reboot hangs at the SIGTERM, is there a way to know why, and also is there a way to timeout the reboot, such that if it takes too long, it will force a reboot? Commented May 28, 2014 at 2:35
  • 6
    Those RHEL versions are no longer "upcoming". ☺ As explained in more detail at unix.stackexchange.com/a/196014/5132, on such systemd operating systems there's no difference at all. They aren't even different programs.
    – JdeBP
    Commented Apr 13, 2015 at 19:27
  • Did you typo by saying init 1 -> shutdown -r?
    – deed02392
    Commented May 1, 2017 at 14:20
  • Your link is broken.
    – whoKnows
    Commented Feb 1, 2019 at 18:03

Shutdown is preferable because it allows you to specify the reason for the drastic action -- something you should always do. The message will be recorded in the log(s) for posterity. For example:

shutdown -r now 'Kernel upgrade requires reboot'

You can also perform a scheduled reboot -- by specifying something other than now as the reboot time:

shutdown -r 22:00 'Work around kernel memory leak'

Then your users will get periodic reminders to get out as the time approaches -- the process will be more orderly and professional.

  • I'd recommend "reboot" not to have someone by accident shut down their remote server without it starting up again. Commented Aug 17, 2022 at 12:03

On FreeBSD there is a difference between reboot and shutdown -r now. From the reboot man page:

Normally, the shutdown(8) utility is used when the system needs to be halted or restarted, giving users advance warning of their impending doom and cleanly terminating specific programs.

  • 1
    This is not a BSD question, though, as evidenced by the tag on the question and use of a System 5 run-level in one of the commands. ☺
    – JdeBP
    Commented Apr 14, 2015 at 9:51
  • 6
    I know it is a Linux question. I thought someone might find it useful to know that on some other systems the is a difference. Commented Jan 4, 2017 at 9:24
  • 3
    I came here looking for the answer for BSD, and glad to see it here, even if BSD isn't Linux. Commented Feb 5, 2020 at 1:11

On traditional unices, reboot and shutdown -r now are vastly different commands. Under typical usage, reboot is only safe to use in single user mode.

shutdown -r now is the canonical method to shutdown across different *nix's and safer to use in general and is functionally equivalent to init 6.

init(8) reboot(8)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .