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
?
5 Answers
On Ubuntu 14.10 and older, sudo
is required.
The introduction of Systemd in 15.04 changed the way Ubuntu handles shutdown
and reboot
:
When a single user is logged in,
sudo
isn't necessary. When more than one user is logged in thensudo
is required.Applications can inhibit
shutdown
andreboot
. You override these inhibitions withsudo
.A single user logged in via
ssh
still requiressudo
.
-
I think this includes a single user logged in mutilple times as well.– mckenzmCommented Feb 14, 2018 at 1:58
-
8It 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 withoutsudo
, even if you're the only user logged in. Conversely, if you're at the console, you can still reboot withoutsudo
even if other users are connected remotely. Commented Feb 14, 2018 at 11:47 -
3@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.– user1686Commented Feb 14, 2018 at 19:20
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
!
-
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. Commented Feb 13, 2018 at 19:06 -
3@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 inls -al $(which reboot)
.– TerranceCommented Feb 13, 2018 at 19:07 -
@terrance, I also see the link to
/bin/systemct1
, what version are you? Commented Feb 13, 2018 at 19:08 -
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. Commented Feb 13, 2018 at 19:08
-
@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.– TerranceCommented Feb 13, 2018 at 19:10
sudo reboot
is 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.
-
2
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
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:
When a single user is logged in,
sudo
isn't necessary. When more than one user is logged in, thensudo
is required.Applications can inhibit shutdown and reboot. You override these inhibitions with
sudo
.
sysrq
keys, it does not requiresudo
:)sudo
is short for "Super-user Do". It has no effect on the command itself (this beingreboot
), it merely causes it to run as the super-user rather than as you. It is used to do things that you might not otherwise have permission to do, but doesn't change what gets done. If you already have permission to runreboot
, then fine, just runreboot
.