Boris Valderrama Asked: 2020-12-31 17:26:34 +0800 CST 2020-12-31 17:26:34 +0800 CST 2020-12-31 17:26:34 +0800 CST systemctl reboot 和 reboot 有什么区别? 772 我知道这reboot是重新启动电脑,虽然它systemctl reboot是做同样的事情但使用 systemd,但我不知道使用其中一个或另一个有什么区别 linux 1 Answers Voted Best Answer Cuauhtli 2020-12-31T22:53:44+08:002020-12-31T22:53:44+08:00 首先,我认为您必须解释看似无关的事情。 systemd、SysVinit是一组守护进程,负责在启动后初始化操作系统和管理系统进程。 systemd和其他像upstart等,作为SysVinit的替代品出现。 您可以看到它们是最先执行的进程。 ps --pid=1 f PID TTY STAT TIME COMMAND 1 ? Ss 0:00 /init ro ps --pid=1 f PID TTY STAT TIME COMMAND 1 ? Ss 3:46 /lib/systemd/systemd --system --deserialize 20 两者都有程序(或符号链接)来管理系统进程。关闭、停止、重新启动、系统或取消这些任务。 reboot当类似于或在使用 SysVinit 的系统上使用程序时,poweroff这些是程序的符号链接,halt并且根据调用它的名称使该程序的行为有所不同。调用它们时,执行级别 ( runlevel ) 更改为 1,用于单用户模式或维护级别,并且进程根据其执行级别脚本中规定的内容运行。 相反,在使用systemdsystemctl的系统上,使用控制程序systemd。 与符号链接类似的事情发生在程序poweroff和其他用于与SysVinit保持关系的程序中 $ ls -l $(command -v "poweroff") lrwxrwxrwx 1 root root 14 Jul 30 16:31 /sbin/poweroff -> /bin/systemctl $ ls -l $(command -v "shutdown") lrwxrwxrwx 1 root root 14 Jul 30 16:31 /sbin/shutdown -> /bin/systemctl $ ls -l $(command -v "reboot") lrwxrwxrwx 1 root root 14 Jul 30 16:31 /sbin/reboot -> /bin/systemctl $ ls -l $(command -v "halt") lrwxrwxrwx 1 root root 14 Jul 30 16:31 /sbin/halt -> /bin/systemctl $ ls -l $(command -v "runlevel") lrwxrwxrwx 1 root root 14 Jul 30 16:31 /sbin/runlevel -> /bin/systemctl $ ls -l $(command -v "telinit") lrwxrwxrwx 1 root root 14 Jul 30 16:31 /sbin/telinit -> /bin/systemctl 它们都是程序的符号链接/bin/systemctl(在使用 systemd 的系统的情况下)。 上面的部分内容是为了表明“关闭”或“重新启动”机器是一个依赖于一组初始化程序(upstart、systemd、init 等)的过程。所以关闭或重启是依赖于每个管理系统的任务和概念。 虽然简短的回答是您使用readlink -f $(command -v reboot)where command -v programais a bash built-in命令,在几个实用程序中,它允许您显示有关如何解释作为参数传递的程序名称的信息。readlink是一个程序,它解析文件名或符号链接,并使用参数-f或-e跟随参数所引用的每个符号链接。
首先,我认为您必须解释看似无关的事情。
systemd、SysVinit是一组守护进程,负责在启动后初始化操作系统和管理系统进程。
systemd和其他像upstart等,作为SysVinit的替代品出现。
您可以看到它们是最先执行的进程。
两者都有程序(或符号链接)来管理系统进程。关闭、停止、重新启动、系统或取消这些任务。
reboot
当类似于或在使用 SysVinit 的系统上使用程序时,poweroff
这些是程序的符号链接,halt
并且根据调用它的名称使该程序的行为有所不同。调用它们时,执行级别 ( runlevel ) 更改为 1,用于单用户模式或维护级别,并且进程根据其执行级别脚本中规定的内容运行。相反,在使用systemd
systemctl
的系统上,使用控制程序systemd
。与符号链接类似的事情发生在程序
poweroff
和其他用于与SysVinit保持关系的程序中它们都是程序的符号链接
/bin/systemctl
(在使用 systemd 的系统的情况下)。上面的部分内容是为了表明“关闭”或“重新启动”机器是一个依赖于一组初始化程序(upstart、systemd、init 等)的过程。所以关闭或重启是依赖于每个管理系统的任务和概念。
虽然简短的回答是您使用
readlink -f $(command -v reboot)
wherecommand -v programa
is a bash built-in命令,在几个实用程序中,它允许您显示有关如何解释作为参数传递的程序名称的信息。readlink
是一个程序,它解析文件名或符号链接,并使用参数-f
或-e
跟随参数所引用的每个符号链接。