Debian 上的“关机”与“重启”

Debian 上的“关机”与“重启”

一位朋友告诉我应该使用Debian 系统中可用shutdown ..的命令。reboot

这是合理的吗?有事实依据吗?而不是用 UNIX/Linux 命令晦涩难懂的方法来支持它?我的意思是,如果rebootDebian 开发人员提供了这些功能,那么使用它难道不是完全没问题吗?

请指教。

答案1

首先,这些命令实际上做什么:

  • systemctl这两个命令都是的命令行实用程序的符号链接systemd
  • 您可以通过执行ls -la /usr/sbin/shutdown并简单地验证这一点ls -la /usr/sbin/reboot
  • 因此,命令由 解释systemd,然后决定要执行的操作(以及其他任务)。
  • systemd是 Debian 使用的 init 系统,简单地说,负责启动和停止服务,包括调用关机和重启
  • 简而言之,这两个命令最终都会调用一个特定systemd目标,最终执行系统调用。这定义了实际发生的事情。

了解了这一点,这两个命令可以导致完全相同的目标,从而导致完全相同的内核调用,执行完全相同的操作。这完全取决于您在这些命令上使用的命令行选项。

这对于常见情况意味着什么?

  • shutdown -r使用和可以完成简单的重启reboot。它们指向相同的 systemd 目标,因此执行的操作完全相同。
  • 关机是通过shutdown -h now或来完成的。据我所知,shutdown -P now您无法通过 命令完成关机,因为当通过命令调用开关时,它会被忽略reboot--poweroffreboot

那么,你应该避免reboot命令吗?

如图所示,两个命令都执行各自的任务。根据您想要关机还是重新启动,您可以使用其中一个命令和相应的选项。没有特别的理由要特别避免使用这个reboot命令,因为在重新启动的情况下,它所做的与 完全相同shutdown -r

来源和更深入的描述

您可以在“这些用于关闭 Linux 服务器的命令有什么区别?”。它主要关注 Red Hat Enterprise Linux,但由于 RHEL 与 Debian 一样使用 systemd,因此那里的解释也应该适用于 Debian。

答案2

reboot无论如何,这最终都会被调用shutdown(除非你这样做),从某种意义上来说,这是合理的--force,但除非你正在使用一些过时的 Omega 系统,否则你不太可能因此而遇到任何性能影响。

来源:https://linux.die.net/man/8/reboot

相关内容