systemctl:12 个步骤即可完全控制 Linux

systemctl 12 个掌握 Linux 的命令

systemctl:掌握 Linux 的 12 个命令

systemctl 命令有几个经常被忽视的功能。除了在 Linux 中启动和停止服务之外,您还可以列出已安装的服务并检查其状态。让我们快速回顾一下! 🚀

Systemctl 命令是什么?

systemctl 命令是 systemd init 系统的中央管理工具,主要作为启动和停止服务的工具。但还有更多,正如他的 手册页 有超过1600行。 📖

因为 systemctl 是一个管理工具,而不仅仅是一个服务启动器,所以您可以使用它来访问有关您的系统及其 systemd 服务的有用信息。 💻

大多数 Linux 发行版都采用了 systemd,但有些发行版选择保留传统的 SystemV init 系统。如果您不确定您的发行版使用哪一个,那么很容易找出答案。我们将使用 stat 命令来查看 init 文件。

统计 /sbin/init 
使用 stat 命令查看 Linux 安装是否使用 SystemV 或 systemd。

/sbin/init 可执行文件是基于 SystemV 的发行版中启动的第一个进程。在基于 systemd 的发行版中,具有该名称的符号链接指向 systemd。

输出的第一行显示,在这台 Ubuntu 测试机上,/sbin/init 是文件 /lib/systemd/systemd 的符号链接。显然,此 Linux 安装使用了 systemd。如果它是基于 SystemV 的发行版,则该行将仅包含“File: /sbin/init”。

使用 systemctl 询问服务

服务在单元文件中定义,您会在 systemctl 选项中看到单词 unit 分散出现。例如,我们可以使用 –type 选项通过 list-units 命令获取服务列表。

系统控制 列表-单位--类型=服务
systemctl list-units 命令的输出,显示正在运行和已停止的服务。

输出显示在 less 文件查看器中,允许您导航并使用 / 键进行搜索。

  • 单元:单元文件的名称。
  • 携带:如果服务单元文件被读入内存而没有语法错误,则此列将显示“已加载”。这并不意味着该服务处于活动状态。
  • 资产:服务是否处于活动状态的概述。活动服务可能未运行。
  • :更详细地查看服务是否正在运行。例如,活动服务可能被安排用于计时器,并且可能已退出其最后一次运行。
  • 描述:用于识别或描述服务的一行文本。

显示仅包括活动服务。要查看所有服务,我们需要包含 –all 选项。

系统控制 列表-单位--all--类型=服务
systemctl list-units 命令的输出,显示所有服务。

如果查看所有内容太麻烦,我们可以使用 –state 选项过滤输出。

系统控制 列表-units --type=service --state=running
systemctl list-units 命令的输出,经过过滤仅显示正在运行的服务。

状态选项将接受正在运行、已停止、已启用、已禁用和已失败。

要关注失败的服务,请使用 –failed 选项。

系统控制 列表-单位--失败
systemctl list-units 命令的输出经过过滤,仅显示失败的服务。没有失败的服务。

此计算机上没有故障驱动器。

如果您发现任何失败的服务,请使用 list-dependencies 选项检查未满足的依赖关系。

系统控制 列表-dependencies sshd.service
systemctl list-dependencies 命令的输出显示了 sshd 服务的依赖项。

依赖关系有一个彩色圆圈代表其状态。可能是:

  • 白圈:不活跃或正在维护
  • 绿点: 资产。
  • 白点:正在停用。
  • 红点:失败或错误。

要检查单个服务是否启用,请使用 is-enabled 命令并提供该服务的单元文件的名称。

系统控制 es-启用 htg-example.service
使用 systemctl is-enabled 来确定特定服务是否启用。

使用 systemctl 控制服务

使用 systemctl 管理服务非常简单,并且遵循我们迄今为止所见的命令的格式。最大的区别是您需要使用 sudo 来更改服务状态。我们到现在还没有这样做,因为我们只报告服务的状态。

要启动服务,请使用启动命令,后跟服务名称。

 系统控制 开始 htg-示例。服务
使用 systemctl start 命令启动服务。

如果一切顺利,您将静默地返回到命令提示符。如果您希望得到肯定的确认,您可以使用状态命令进行验证。

 系统控制 地位 htg-示例。服务
使用 systemctl status 命令检查服务的状态。

停止服务与启动服务一样简单。

 系统控制 停止 htg-示例。服务
使用 systemctl stop 命令停止服务。

您可以重新启动服务,而不必经过停止然后启动它的两步过程。他 重启命令 为您完成所有工作。

 系统控制 重启 htg-示例。服务
使用 systemctl restart 命令重新启动服务。

如果您希望服务在启动时启动,则需要启用它。

 系统控制 使能够 htg-示例。服务
使用 systemctl enable 命令启用服务。

请注意,这仅标记服务在启动时启动,而不是立即启动。如果这是您想要的,我添加了 –now 选项。

 系统控制 使能够 - 现在 htg-示例。服务
使用 systemctl enable --now 命令同时启用和启动服务。

当您不再需要某项服务在启动时启动时,请禁用它。

 系统控制 禁用 htg-示例。服务
使用 systemctl disable 命令禁用服务。

您可以使用 journalctl 命令(systemd 的另一部分)来查找与您的服务相关的条目。 -u(单位)选项允许您指定您感兴趣的服务。使用 -S(自从)选项,您可以显示自您提供的时间以来发生的条目。

journalctl -S "08:00:00" -或者 htg-示例。服务
使用 journalctl 命令显示与特定服务相关的系统日志条目。

任何可以帮助您的工具 获取有关操作的信息 Linux 发行版的内部结构非常有价值,无论是对于日常管理还是故障排除和诊断问题。 systemctl 命令不是一个单一的工具。它更像是一个专门的工具箱,值得熟悉。 🔧🛠️

5 2 投票数
文章評級
訂閱
通知
客人

0 評論
最古老的
最新 投票最多
線上評論
查看所有評論