如何在 Debian 中使用 systemd如何在 Debian 中使用 systemd如何在 Debian 中使用 systemd如何在 Debian 中使用 systemd
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Debian 中使用 systemd

Linux 内核进程树形结构的根是 systemd。因此,它可用于执行非常有用的活动,例如自动控制您的服务和机器,在启动时运行它们。我们将了解使用 systemd 可以执行的所有关键活动。我们将从介绍开始,然后继续实施。让我们开始吧!

什么是systemd?

systemd 软件套件为 Debian 操作系统提供了基础。 Linux进程树中的根进程负责管理其他进程和应用程序,用于在内核级模式下控制应用程序。例如,将 Docker 作为服务运行。

如何使用 Systemd 执行各种任务

列出单位文件

Systemd 使用“单元”来处理所有系统服务和进程。 Systemd 单元使用配置文件来管理其不同的活动。单元配置文件分为三种类型:

“默认单元配置文件”,配置文件包含在目录“/usr/lib/systemd/system”中

“系统特定单元配置文件”,包含在“/etc/systemd/system”中的系统特定单元配置文件““运行时单元配置文件”,“包含在目录中找到的配置文件” “/run/systemd/system”

下面是列出单元文件及其输出的命令

$ systemctl list-unit-files

输出

UNIT FILE                                     STATE  
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 命令仅过滤已启用的服务。

$ systemctl list-unit-files |grep enabled

输出

auditd.service                                enabled
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 start <service_name>
$ sudo systemctl stop <service_name>

下面是一个将 docker 容器作为服务运行的示例。

要将应用程序(我们称之为“X”)作为 systemd 服务运行,请在“/etc/systemd/system”目录中创建以下文件并将其命名为“docker.some_name.service”:

[Unit]
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

要在系统引导时启动服务,请使用以下命令:

systemctl enable docker.some_name

使用以下命令手动停止和启动服务:

sudo service stop docker.some_name
sudo service start docker.some_name

检查服务状态

以下是检查正在运行的服务状态的命令。

$ sudo systemctl status <service_name>

重启服务

您还可以重新启动服务,而无需停止和启动它,这需要更多的努力。以下是执行此任务的命令。

$ sudo systemctl restart firewalld

重启和关机

以下分别是重新启动和关闭系统的命令。 (作为系统管理员,您还应该知道如何使用命令行关闭系统)

$ sudo systemctl reboot
$ sudo systemctl poweroff

在引导时启动服务

像 Docker 这样的服务需要在你的机器开机后立即启动。要完成它,您可以使用以下命令。

$ sudo systemctl enable firewalld

尝试启动您的计算机,您会发现该服务会自动启动,无需人工交互。

结论

©2015-2025 艾丽卡 support@alaica.com