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

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

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

注意:要在Linux发行版(如使用sudo的Ubuntu)上修改系统配置,您需要在此处的命令前面加上sudo。在其他Linux发行版上,您需要首先使用su命令成为root用户。

检查您的Linux操作系统是否正在使用Systemd

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

分析引导过程

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

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

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

查看单位

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

要查看系统上所有可用的设备文件,请执行以下操作:

要列出所有正在运行的设备,请执行以下操作:

要列出所有故障设备,请执行以下操作:

管理网络服务

要查看启用和禁用的服务列表,可以使用与上面相同的systemctl命令,但告诉它只列出服务:

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

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

使用systemctl enable命令可让systemd在启动时自动启动服务(或其他类型的设备)。systemctl DISABLE命令可禁用服务,并阻止其与您的计算机自动启动。

您可以“屏蔽”服务或其他单元,以防止其启动。您需要先将其取消掩码,然后才能在将来启动:

当然,systemd及其各种命令还有很多其他功能。Systemd提供了各种电源管理命令来关闭、重新引导、休眠以及控制系统的电源状态。您可以编写自己的单元文件来创建服务和挂载点,也可以编辑现有的单元文件。

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

Arch Linux wiki有关于systemd的更深入的信息,那里的大多数信息都适用于所有Linux发行版上的systemd。您还应该查看您自己的Linux发行版的systemd文档以了解更多信息。

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

相关文章