Linux 中的 service 与 systemctl:有什么区别?
如果您想了解有关 init 系统的更多信息,首先了解 systemctl 和 service 命令及其根本区别非常重要。
要点
- Linux 中的 service 和 systemctl 命令至关重要且极其相似,其中 systemctl 是一个更通用、更强大的命令。
- service 和 systemctl 都允许用户配置系统服务并与之交互,但它们属于不同的初始化系统(分别为 SysVinit 和 systemd)。
- Service 对 /etc/init.d 中的初始化系统文件进行操作,而 systemctl 对 /lib/systemd 中的文件进行操作。熟悉这两个命令对于有效管理系统服务非常重要。
service 和 systemctl 都是 Linux 中至关重要且极其相似的命令。它们非常相似,以至于很容易想知道它们之间到底有什么区别,以及是否可以互换使用这两个命令。
了解有关 service 和 systemctl 的更详细信息将使您能够无缝地使用它们。
Linux 中的服务命令是什么?
在Linux中,service命令是一个包装脚本,允许用户轻松配置系统服务并与系统服务交互。它先于 systemd,主要与 /etc/init.d 中的脚本一起使用。
尽管 systemctl 取代了服务以前的大部分重要性,但它仍然通过许多遗留功能保持相关性。
相关初始化系统(SysVinit 到 systemd)之间的转变是有争议的,但对原始 init 系统功能的日益严峻的挑战使得这种转变成为必要。
systemd 以并行方式而不是串行顺序启动服务,使其启动时间比 SysVinit 更快,并且它通过命令行界面 (CLI) 提供稍微更复杂的系统守护程序控制。
Linux 中的 systemctl 命令是什么?
与 service 非常相似,systemctl 是一个非常通用的命令,它允许您启用、重新加载、启动、停止和检查 Linux 系统上运行的服务的状态。
systemctl 是一个易于使用且功能强大的界面,用于配置 systemd 中的文件,例如,使用 systemctl 只需一到两个命令即可在启动时禁用服务。
systemctl 向后兼容初始化系统 SysVinit,主要与服务一起使用。 systemctl 并不是 service 的直接继承者,但它提供的管理系统服务的工具更加通用。
您只需一两行即可完成屏蔽或禁用服务等任务。
service 和 systemctl 之间的区别
service 和 systemctl 很大程度上服务于相同的目的。它们之间的许多相似之处是故意插入的,以便让用户从 service 到 systemctl 更加无缝地过渡。
然而,当您开始在 Linux 上使用初始化系统时,您应该注意两者之间的一些差异。
1. 不同的初始化系统
service 和 systemctl 最显着的区别是它们属于不同的初始化系统。服务属于SysVinit(System V Init),也称为经典的Linux初始化过程。
systemctl 属于 systemd,它是 SysVinit 的继承者,也是许多 Linux 系统上使用的现代初始化过程。
由于service和systemctl是不同初始化进程的一部分,因此它们对不同目录中的初始化系统文件进行操作。 service 使用在 /etc/init.d 中找到的初始化系统文件,而 systemctl 使用在 /lib/systemd 中找到的初始化系统文件。
一般来说,您在开箱即用的 Linux 安装中将遇到的初始化系统是 systemd,因此您需要熟悉如何使用 systemctl 与其交互。
如果您打算使用 2010 年 systemd 发布之前或同时发布的系统,那么熟悉使用 service 命令也没什么坏处。
2. 兼容性
就兼容性而言,service 仍然是一个非常有用的命令 - 作为包装器命令,它能够重定向到不同系统上使用的服务管理器。如果您将使用各种 Linux 系统,您应该计划学习它并使其成为您的工具库的一部分。
3. 底层功能
systemctl 和 service 之间的另一个主要区别在于它们的操作方式。 service 是一个高级命令,它重定向到特定系统上使用的底层服务管理器,这意味着它在系统之间具有很强的通用性。它可能会重定向到 /etc/init.d、upstart、甚至 systemctl。与此同时,systemctl 命令直接与 systemd 交互。
4. 能力
就您可以完成的任务而言,可以肯定地说 systemctl 的功能远远超过了服务。除了基本功能(例如启动、停止、启用或禁用特定服务)之外,您还可以使用 systemctl 设置高级配置。
服务受到更多限制,因为它需要与其所依赖的底层服务管理器兼容。
在 Linux 上有效配置系统服务
service 和 systemctl 都是管理系统服务的非常重要的命令。无论您只是想充分利用 Linux 系统还是打算在企业网络上工作,熟悉这两个命令都至关重要。
幸运的是,有很多很棒的教程可以帮助您成为在终端中使用 systemctl 和服务的大师。