如何在 Debian 中使用 systemd
Linux 内核进程树形结构的根是 systemd。因此,它可用于执行非常有用的活动,例如自动控制您的服务和机器,在启动时运行它们。我们将了解使用 systemd 可以执行的所有关键活动。我们将从介绍开始,然后继续实施。让我们开始吧!
什么是systemd?
systemd 软件套件为 Debian 操作系统提供了基础。 Linux进程树中的根进程负责管理其他进程和应用程序,用于在内核级模式下控制应用程序。例如,将 Docker 作为服务运行。
如何使用 Systemd 执行各种任务
列出单位文件
Systemd 使用“单元”来处理所有系统服务和进程。 Systemd 单元使用配置文件来管理其不同的活动。单元配置文件分为三种类型:
“默认单元配置文件”,配置文件包含在目录“/usr/lib/systemd/system”中
“系统特定单元配置文件”,包含在“/etc/systemd/system”中的系统特定单元配置文件““运行时单元配置文件”,“包含在目录中找到的配置文件” “/run/systemd/system”
下面是列出单元文件及其输出的命令
输出
proc-sys-fs-binfmt_misc.automount static
dev-hugepages.mount static
dev-mqueue.mount static
proc-sys-fs-binfmt_misc.mount static
sys-fs-fuse-connections.mount static
sys-kernel-config.mount static
sys-kernel-debug.mount static
tmp.mount disabled
brandbot.path disabled
systemd-ask-password-console.path static
systemd-ask-password-plymouth.path static
systemd-ask-password-wall.path static
session-1.scope static
arp-ethers.service disabled
auditd.service enabled
autovt@.service enabled
尝试使用 Linux grep 命令仅过滤已启用的服务。
输出
autovt@.service enabled
crond.service enabled
dbus-org.fedoraproject.FirewallD1.service enabled
dbus-org.freedesktop.nm-dispatcher.service enabled
firewalld.service enabled
getty@.service enabled
irqbalance.service enabled
kdump.service enabled
lvm2-monitor.service enabled
启动和停止服务
$ sudo systemctl stop <service_name>
下面是一个将 docker 容器作为服务运行的示例。
要将应用程序(我们称之为“X”)作为 systemd 服务运行,请在“/etc/systemd/system”目录中创建以下文件并将其命名为“docker.some_name.service”:
Description=X container
After=docker.service
Wants=network-online.target docker.socket
Requires=docker.socket
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a some_name
ExecStop=/usr/bin/docker stop -t 10 some_name
[Install]
WantedBy=multi-user.target
要在系统引导时启动服务,请使用以下命令:
使用以下命令手动停止和启动服务:
sudo service start docker.some_name
检查服务状态
以下是检查正在运行的服务状态的命令。
重启服务
您还可以重新启动服务,而无需停止和启动它,这需要更多的努力。以下是执行此任务的命令。
重启和关机
以下分别是重新启动和关闭系统的命令。 (作为系统管理员,您还应该知道如何使用命令行关闭系统)
$ sudo systemctl poweroff
在引导时启动服务
像 Docker 这样的服务需要在你的机器开机后立即启动。要完成它,您可以使用以下命令。
尝试启动您的计算机,您会发现该服务会自动启动,无需人工交互。