`sudo reboot` 与 `reboot` - 有什么区别?

Zek*_*man 71 command-line reboot

我最近发现,据我所知,它的reboot效果与 一样好sudo reboot。但是,在很多情况下,我看到人们说 to sudo reboot。为什么是这样?他们是一样的吗,只是个人喜好?或者他们有什么不同?的确sudo reboot做多reboot

use*_*733 128

在 Ubuntu 14.10 及更早版本上,sudo是必需的。

Systemd 在 15.04 中的引入改变了 Ubuntu 处理shutdownreboot

  1. 当单个用户登录时,sudo没有必要。当多个用户登录时,则sudo需要。

  2. 应用程序可以禁止shutdownreboot。您可以使用 覆盖这些限制sudo

  3. 通过 登录的单个用户ssh仍然需要sudo.

  • 它与连接的用户数量无关。在不使用 `sudo` 的情况下重新启动的能力取决于是否在机器的控制台上。如果你通过 ssh 进入一台机器,你仍然无法在没有 `sudo` 的情况下重新启动它,即使你是唯一登录的用户。相反,如果你在控制台,你仍然可以在没有 `sudo` 的情况下重新启动` 即使其他用户远程连接。 (7认同)
  • @DaveSherohman:这不一定是真的——systemd 仍然使用 [单独的 polkit 操作](https://github.com/systemd/systemd/blob/master/src/login/org.freedesktop.login1.policy.in#L190- L210) 取决于您是唯一登录的人,还是有多个登录的人。意思是,发行版(或系统管理员)可以很容易地使它们的行为不同。 (2认同)

Org*_*ble 23

在我的 14.04 机器上,当我(作为普通用户)输入时reboot,我得到

reboot: Need to be root
Run Code Online (Sandbox Code Playgroud)

这就是区别。

正如特伦斯在评论中指出的那样,它在较晚的系统上的工作方式与我的不同。因此,您可能会看到习惯于打字的旧文章和/或用户(如我)sudo reboot

  • @ZekeEgherman 我实际上认为当他们将命令从 Upstart 更改为 Systemd 时发生了差异。当我查看我的重启命令时,它指向`/bin/systemctl` 的链接。你可以通过输入`ls -al $(which reboot)`来检查你的。 (3认同)

Rob*_*edl 12

sudo reboot出于兼容性原因在教程/操作指南中使用

虽然reboot 可能有效

  • 如果您是 root
  • 如果你在一个主机上,systemd 并且
  • 如果没有应用程序阻止重新启动

sudo reboot将“永远”* 工作,不管

  • 不管你是root
  • 是否有其他用户登录
  • 是否有应用程序阻塞
  • init 是否是 systemd、System V、Upstart 等等

* 好吧,它肯定会尝试 - 如果没有一些内核进程阻塞/行为不端,它应该可以工作。

  • 如果安装了 sudo,它总是*有效。 (2认同)

Win*_*nix 9

对于我自己来说,如果我reboot在观看 YouTube 和其他打开的标签时,由于 Chrome 的抑制剂,它不会让我输入很多次。所以我不得不使用——sudo reboot更大的锤子。

这在 Ubuntu 16.04 中


Zek*_*man 6

感谢您的讨论,我很高兴现在明白了这一点!

正如Terrance 所提到的,在 15.04 版本中,他们从 Upstart 切换到 Systemd 来执行命令。此更改意味着reboot不再需要 root 权限。

至于为什么 *nix 社区指示 sudo reboot,有几个潜在的原因:

  • 习惯 - 人们已经习惯于sudo reboot重启,尽管实际上不需要重启,但他们继续这样做
  • 未更新的用户 - 指示使用sudo reboot低于 15.04 的 Ubuntu 版本或其他使用 Upstart 命令的发行版的人。

  • 兼容性 - 这对我来说似乎是最合理的:人们正在指示,sudo reboot因为它保证在所有 *nix 系统上重新启动,无论如何。

附加说明:来自 user535733回答

systemd 在 15.04 中的引入改变了 Ubuntu 处理关机和重启的方式:

  1. 当单个用户登录时,sudo没有必要。当多个用户登录时,则sudo需要then 。

  2. 应用程序可以禁止关机和重启。您可以使用 覆盖这些限制sudo