`sudo reboot` vs `reboot` - what is the difference?

62,008

Solution 1

On Ubuntu 14.10 and older, sudo is required.

The introduction of Systemd in 15.04 changed the way Ubuntu handles shutdown and reboot:

  1. When a single user is logged in, sudo isn't necessary. When more than one user is logged in then sudo is required.

  2. Applications can inhibit shutdown and reboot. You override these inhibitions with sudo.

  3. A single user logged in via ssh still requires sudo.

Solution 2

On my 14.04 machine, when I (as a normal user) type reboot, I get

reboot: Need to be root

That is the difference.

As Terrance pointed out in the comments, it works differently on later systems than mine. So you are probably seeing old writeups and/or users (like me) who have been habituated to typing sudo reboot!

Solution 3

sudo rebootis used in tutorials / how-tos for compatibility reasons

While reboot might work

  • if you are root or
  • if you are on a host with systemd and
  • if no applications are blocking a reboot

sudo reboot will "always"* work, regardless of

  • whether you are root
  • whether there are other users logged in
  • whether there are applications blocking
  • whether init is systemd, System V, Upstart, whatever

* Well, it will certainly try - short of there being some kernel processes that are blocking/misbehaving it should work.

Solution 4

For myself many times if I type reboot it won't let me due to inhibitors from Chrome when watching YouTube and other opened tabs. So I'm forced to use sudo reboot--a bigger hammer.

This in Ubuntu 16.04

Solution 5

Thanks for the discussion, I'm glad to understand this now!

As Terrance mentioned, in version 15.04, they switched from Upstart to Systemd for the commands. This change means that reboot no longer requires root privileges.

As for why the *nix community instructs to sudo reboot, there are a few potential reasons:

  • Habit - People were so used to having to sudo reboot to reboot, they continue to do it despite the fact it is not needed
  • Non-updated users - The people instructing to sudo reboot are on versions of Ubuntu lower than 15.04, or other distros that use Upstart for commands.

  • Compatibility - This is what seems the most plausible to me: people are instructing to sudo reboot because it is guaranteed to reboot across all *nix systems, no matter what.

Additional note: from user535733's answer:

The introduction of systemd in 15.04 changed the way Ubuntu handles shutdown and reboot:

  1. When a single user is logged in, sudo isn't necessary. When more than one user is logged in, then sudo is required.

  2. Applications can inhibit shutdown and reboot. You override these inhibitions with sudo.

Share:
62,008

Related videos on Youtube

Zeke Egherman
Author by

Zeke Egherman

Updated on September 18, 2022

Comments

  • Zeke Egherman
    Zeke Egherman almost 2 years

    I recently found out that reboot works just as well as sudo reboot, from what I can tell. However, in a lot of instances, I see people saying to sudo reboot. Why is this? Are they the same, and just personal preference? Or are they different? Does sudo reboot do more than reboot?

  • Zeke Egherman
    Zeke Egherman over 6 years
    Interesting! What I am wondering now, is if something changed between 14.04 and 17.10 to make it that you don't need to be root to reboot, or if there are other factors in play on my system changing that.
  • Terrance
    Terrance over 6 years
    @ZekeEgherman I actually think the difference happened when they changed from Upstart to Systemd for the commands. When I look at my reboot command it points as a link to /bin/systemctl. You can check yours by typing in ls -al $(which reboot).
  • Zeke Egherman
    Zeke Egherman over 6 years
    @terrance, I also see the link to /bin/systemct1, what version are you?
  • Organic Marble
    Organic Marble over 6 years
    That is interesting! I just tried it on my 18.04 pre-release virtual machine, and it works as you say. @Terrance, I think you should write up the real answer.
  • Terrance
    Terrance over 6 years
    @ZekeEgherman 16.04. Ubuntu switched to Systemd at 15.04. So, 14.04 would still be Upstart then or initd if that is what you want to call it.
  • Terrance
    Terrance over 6 years
    @OrganicMarble Feel free to add in that information to your answer.
  • hazzey
    hazzey over 6 years
    I'm not even an old-timer and the command that I always use is sudo shutdown -r now. I guess that I learned something?
  • mckenzm
    mckenzm over 6 years
    I think this includes a single user logged in mutilple times as well.
  • Dave Sherohman
    Dave Sherohman over 6 years
    It has nothing to do with the number of users connected. The ability to reboot without using sudo is dependent on being at the machine's console. If you ssh into a machine, you still won't be able to reboot it without sudo, even if you're the only user logged in. Conversely, if you're at the console, you can still reboot without sudo even if other users are connected remotely.
  • user1686
    user1686 over 6 years
    @DaveSherohman: That's not necessarily true -- systemd still uses separate polkit actions depending on whether you're the only person logged in, or whether there are multiple. Meaning, the distro (or the sysadmin) could very easily make them behave differently.
  • ave
    ave over 6 years
    It'll always* work… if sudo is installed.