服务与系统

2024年 3月 20日 210.7k 0

service和systemctl是用于管理系统服务的两个命令行实用程序。这两个实用程序分别属于两个不同的init系统SysV和systemd。

在本指南中,我将讨论服务和系统ctl命令,以及它们在服务管理方面的不同之处。

在进一步讨论之前,让我们先了解两个流行的Linux init系统:System和Systemd。

系统V与系统D

Linux上的init系统是引导过程的关键部分。它是在系统启动时启动的第一个具有PID1的进程。然后,它启动inittab文件中存在的进程。System V也知道SysV和Sysd是流行的Linux init系统。

SysV是一个较旧的init系统,已成为较旧的Unix和Linux发行版的一部分。它使用位于/etc/init.d中的脚本管理系统服务。一些仍在使用SysV的Linux发行版包括Slackware、Gentoo和Antix Linux。

另一方面,systemd于2010年推出,并迅速被许多Linux发行版采用。systemd init系统通过. service文件管理服务。它现在是所有现代Linux发行版的一部分,包括Red Hat Enterprise Linux、CentOS、Amazon Linux、Fedora、Debian、Ubuntu以及基于这些操作系统的发行版。

与SysV相比,systemd更有效。它提供了更快的引导时间、高效的服务管理和依赖性处理。

两个init系统都提供了两个用于服务管理的命令行实用程序。

  • 服务
  • systemctl

在本指南的以下部分中,我将讨论这两个实用程序。

服务命令

SERVICE命令是一个脚本包装器,它运行位于/etc/init.d目录中的脚本。它是为管理SysV或System V init系统的服务而开发的。使用SysV作为init系统的Linux发行版使用SERVICE命令进行服务管理。

下面给出了使用service命令的一般语法。

服务[服务名称][操作]

要获取System V控制的服务的状态,请使用service命令和—status—all选项。

服务—所有状态

+表示服务正在运行,—表示服务处于非活动状态。

还可以通过提及服务名称来检查任何特定服务的当前状态。

service [service_name]状态

下面列出了一些其他有用的服务命令,如启动、停止和重新启动服务。

服务[服务名称]启动

服务[服务名称]停止

service [service_name] restart

此service命令提供管理服务的基本控制。大多数Linux发行版已经取代SysV作为init系统,但由于遗留的兼容性,这个命令仍然出现在许多最新的Linux发行版中。

SYSTEMCTL命令

使用systemctl命令,可以控制/lib/systemd/system和/etc/systemd/system目录中的服务。它是systemd的一个组件;在大多数当代Linux发行版中都可以找到init系统。

systemctl旨在提供对系统服务管理的更多控制。下面给出了使用systemctl命令的一般语法:

systemctl [选项][service_name]

要检查所有服务的状态,请使用以下命令。

systemctl list—units——type = service——all

对于特定的服务用途:

systemctl状态[service_name]

使用系统ctl对服务进行基本管理的命令如下:

systemctl enable [service_name]

系统ctl启动[服务名称]

systemctl stop [service_name]

systemctl disable [service_name]

系统ctl重新启动[服务名称]

当涉及到控制服务时,系统ctl命令超越了这一范围。下表包含一些高级系统ctl命令。

列表路径 列出内存中所有服务的路径
is—active [service_name] 检查服务或单元是否正在运行
列表依赖[service_name] 打印指定服务的依赖项列表
重置失败 重置因异常导致加载失败的服务
掩码[service_name] 禁用该服务并使其无法启动
获取默认值 打印默认运行级别或目标
Set-Default[目标] 设置默认运行级别或目标
系统运行 检查系统的运行状态
重新启动 重新启动系统
断电 关闭系统

为什么在Linux发行版中使用systemd init System仍然存在服务命令

service命令仍然是许多Linux发行版的一部分,因为它是一个包装器脚本,抽象了底层init系统,无论是SysV还是systemctl。例如,在Ubuntu上,service命令重定向到systemctl。

结论

服务和系统ctl是两个命令行实用程序,分别属于SysV和systemd init系统。尽管现代Linux发行版中的SERVICE命令已被替换,但由于其简单性和兼容性,它仍然是维护服务的关键工具。另一方面,系统ctl是当前所有Linux发行版的一部分,并为服务管理提供高级选项。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论