如何在Linux系统上管理Systemd服务

linux tux

默认情况下,Systemd现在在大多数Linux发行版中使用,从Fedora和Red Hat到Ubuntu,Debian,openSUSE和Arch。 systemctl命令允许您获取有关systemd状态的信息并控制运行的服务。

尽管有争议,这至少在Linux发行版中引入了一些标准化。 相同的命令将允许您在使用systemd的任何Linux发行版上以相同的方式管理服务。

注意 :要修改的Linux发行版Ubuntu的一样,你的系统配置使用sudo的 ,你需要使用sudo前缀这里的命令。 在其他Linux发行版,你需要成为su命令第一根用户。

检查您的Linux系统是否使用Systemd

如果不确定您的Linux发行版是否使用systemd,请打开“终端”窗口并运行以下命令。 这将显示您的Linux系统上systemd的版本号,如果它有systemd安装:

systemd -version

img_55493012d3627

分析引导过程

systemd-analyze命令允许您查看有关引导过程的信息,例如花费了多长时间以及哪些服务(和其他进程)在引导过程中占用了最多时间。

要查看有关启动过程的信息,请运行以下命令:

系统分析

要查看每个进程启动的时间,请运行以下命令:

系统分析怪

查看单位

Systemd使用“单位”,可以是服务(.service),安装点(.mount),设备(.device)或套接字(.socket)。 相同的systemctl命令管理所有这些类型的单元。

要查看系统上的所有可用单元文件:

systemctl list-unit-files

要列出所有运行单位:

systemctl列表单元

列出所有失败的单元:

systemctl失败

管理服务

要查看已启用和已禁用的服务的列表,请使用与上述相同的systemctl命令,但请将其命名为仅列出服务:

systemctl list-unit-files -type = service

systemctl命令允许您启动,停止或重新启动服务。 您还可以告诉服务“重新加载”其配置。

状态命令是打印并输出到终端的唯一操作。 其他命令将静默生效。

systemctl start name.service

systemctl stop name.service

systemctl restart name.service

systemctl reload name.service

systemctl status name.service

使用systemctl enable命令让systemd在启动时自动启动服务(或其他类型的单元)。 systemctl disable命令禁用服务并停止它自动从您的计算机启动。

systemctl enable name.service

systemctl disable name.service

您可以“屏蔽”服务或其他设备,以防止其启动。 您需要先取消屏蔽它,然后才能开始使用:

systemctl mask name.service

systemctl unmask name.service


当然,systemd和它的各种命令还有很多。 Systemd提供各种或电源管理命令来关闭,重新启动,休眠以及控制系统的电源状态。 您可以编写自己的单元文件以创建服务和装入点或编辑现有单元文件。

Systemd还提供了“目标”,这是类似运行级别 ,但不同的。 而不是一个数字,目标有名称 - systemd可能在一个多个目标状态。 Systemd还提供了自己的系统日志,可以使用journalctl命令访问。 默认情况下,它以二进制格式存储系统日志 - 但如果您愿意,您可以切换到纯文本格式日志。

Arch Linux的维基有systemd更深入的信息,并且大部分的信息有适用于systemd在所有Linux发行版。 您还应该检查您自己的Linux发行版的systemd文档以获取更多信息。

图片来源: 伯特·海曼斯在Flickr

赞 (0)
分享到:更多 ()