Linux中的service vs. systemctl:有什么区别?

在Linux中,服务和系统ctl都是非常重要且极其相似的命令。它们是如此相似,以至于人们很容易怀疑它们之间到底有什么不同--以及您是否可以互换使用这两个命令。

了解关于服务和systemctl的细节将使您能够无缝地与它们一起工作。

Linux中的service命令是什么?

在Linux中,service命令是一个包装器脚本,允许用户轻松地配置系统服务并与之交互。它在systemd之前,主要用于/etc/init. d中的脚本。

尽管systemctl超越了service以前的重要性,但它仍然通过许多遗留特性保持着相关性。

相关的初始化系统之间的转换(SysVinit到systemd)是有争议的,但对原始init系统功能的挑战越来越大,这使得它成为必要的。

SYSTEM D以并行而不是串行顺序启动服务,这使得它的启动时间比SysVinit更快,并且它通过命令行界面(CLI)提供了对系统守护程序的稍微复杂的控制。

Linux中的systemctl命令是什么?

与service非常相似,systemctl是一个非常通用的命令,它允许您启用、重新加载、启动、停止和检查Linux系统上运行的服务的状态。

systemctl是一个易于使用和强大的界面,用于配置systemctl中的文件例如,它只需要一到两个命令就可以在使用systemctl启动时禁用服务。

systemctl与初始化系统SysVinit向后兼容,主要用于服务。systemctl并不是服务的直接继承者,但就其提供的管理系统服务的工具而言,它的通用性要高得多。

您可以在短短的一两行内完成掩蔽或禁用服务等任务。

服务与系统ctl的区别

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与它交互。

如果您打算使用在systemd 2010年发布之前或同时发布的系统,熟悉使用service命令也不会有什么坏处。

2.兼容性

就兼容性而言,服务仍然是一个非常有用的命令--作为包装命令,它能够重定向到在不同系统上使用的服务管理器。如果您要使用各种Linux系统,您应该计划学习它并使其成为您的武器库的一部分。

3.基本职能

systemctl和service的另一个关键区别在于它们的操作方式。service是一个高级命令,它重定向到特定系统上使用的底层服务管理器,这意味着它在系统之间非常通用。它可以重定向到/etc/init. d、upstart甚至systemctl。systemctl命令直接与systemd交互。

4.能力

就您所能完成的任务而言,可以肯定地说systemctl在功率方面远远超过了服务。除了基本功能如启动、停止、启用或禁用特定服务之外,您还可以使用systemctl设置高级配置。

服务由于与它所依赖的底层服务管理器的必要兼容性而受到更大的限制。

在Linux上有效配置系统服务

service和systemctl都是管理系统服务的非常重要的命令。无论您只是想充分利用Linux系统,还是打算在企业网络上工作,熟悉这两个命令都至关重要。

幸运的是,有很多很棒的教程可以帮助您成为在终端中使用systemctl和service的大师。