使用systemctl命令管理systemd服务和单元
出版商:必威平台,2021年6月10日大多数Linux发行版的默认系统和服务管理器现在是systemd。它被设计为与SysV init脚本向后兼容,并提供一些功能,例如在引导时并行启动系统服务、按需激活守护进程或基于依赖关系的服务控制逻辑。在Red Hat Enterprise Linux 7中,systemd取代Upstart作为默认的初始化系统。
除了systemd之外,还引入了一个称为systemd单元的新概念。这些装置由下列目录之一中的装置配置文件表示
/运行/systemd/system/
/etc/systemd/system/
并封装关于系统服务、监听套接字和其他与init系统相关的对象的信息。
systemd作为内核引导后的第一个进程运行,并负责启动Linux主机。它负责启动和管理服务、安装文件系统、管理硬件、生成登录提示等等。与SysV相比,systemd的一个关键好处是,它可以并行启动尽可能多的服务,从而加快启动过程,更快地打开登录屏幕。
服务单元
目标单元是用于服务管理的服务单元,它们具有后缀为的单元文件服务.
管理systemd服务
管理systemd单元的命令为系统控制
启动和停止服务
要启动systemd服务,请使用systemctl开始命令:
# systemctl start name.service
这不是强制性的服务后缀例如,要在Ubuntu上启动apache服务器:
#systemctl启动apache2
停止正在运行的服务。
# systemctl stop name.service
因此,要停止Ubuntu上的apache服务器:
# systemctl stop apache2
重启和重新加载服务
要重新启动正在运行的服务,请使用重新启动命令:
#systemctl重新启动name.service
在需要重新加载配置文件的地方,使用重新加载
#systemctl重新加载名称.service
启用和禁用服务
如果希望服务在系统启动时自动启动,请使用启用命令:
#systemctl启用name.service
要禁用在系统启动时启动的服务,请使用禁用
# systemctl disable name.service
禁用不会停止正在运行的服务,但只有在系统重新启动后才会生效。
查看服务状态
要查看有关服务的信息,请使用状态指挥部。
#systemctl status name.service
这将显示服务状态和日志文件的前几行。因此,当服务运行时,输出为
# systemctl status apache2
输出
已加载:已加载(/lib/systemd/system/apache2.service;已启用;供应商预设:已启用)
输入:/lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
活动:自2021年6月10日星期四03:05:13 PDT起活动(运行);1分钟21秒前
主PID: 3880 (apache2)
任务:55(限制:4915)
CGroup:/system.slice/apache2.service
├─rammstein - du(2)——mstein - du(2)——mstein - du(3)——mstein - du (3
├─3883/usr/sbin/apache2-k启动
└─└─60 /usr/sbin/apache2
june 5 03:05:13 master-node systemd[1]: Starting The Apache HTTP Server…
Jun 5 03:05:13 master-node apachectl[3855]: AH00557: apache2: apr_sockaddr_info_get() failed for master-node .日志含义
Jun 5 03:05:13主节点apachectl[3855]:AH00558:apache2:无法使用127.0.0.1可靠地确定服务器的完全限定域名。全局设置“ServerName”指令以抑制
Jun 5 03:05:13主节点systemd[1]:启动了Apache HTTP服务器。
现在让我们看看检查服务是否处于活动状态的命令:
# systemctl is-active name.service
因此,当apache2服务运行时,systemctl is active命令的输出为:
# systemctl is-active apache2
输出
查询某个服务是否已启用。
#systemctl已启用name.service。
查看系统状态
到目前为止,您看到的所有命令都用于管理单个服务。当你想要一个系统状态的概述,使用以下命令集:
查看所有单元类型
#systemctl-t帮助
输出
服务
套接字
目标
装置
攀登
自动安装
交换
计时器
路径
片
范围
要列出所有已安装的单元,请使用列出单位档案.
#systemctl列出单位文件
输出
proc-sys-fs-binfmt_misc。加载静态
-.生成的山
dev-hugepages。静态的山
dev-mqueue.mount静态
proc-sys-fs-binfmt_杂项安装静态
sys-fs-fuse-connections.mount static
sys-kernel-config。静态的山
sys-kernel-debug。静态的山
acpid.path已启用
apport-autoreport。启用路径
systemd-ask-password-console.path静态
systemd-ask-password-plymouth.path静态
systemd-ask-password-wall.path静态
会话244.1范围瞬态
会话-250.1范围瞬态
accounts-daemon。服务使
acpid.service已禁用
apache-htcacheclean。服务残疾人
阿帕奇-htcacheclean@.service残废
输入。服务启用d
apache2@.service残废
apparmor对。服务启用d
apport-autoreport。服务的静态
阿波特-forward@.service静止的
幻想。服务生成的
apt-daily-upgrade.service静态
apt-daily。服务static
atd服务已启用
autovt@。服务启用d
屏蔽的bootlogd.service
bootlogs。服务masked
注:以上输出仅部分用于演示目的。实际列表很长,可能会有所不同。
输出只有两列Unit File和State。状态通常为启用、禁用、静态或屏蔽。
静止的:这意味着该单元不能被启用,不能执行一次性操作,或者是另一个单元的依赖项,不能自己运行。
蒙面:列为掩码的单元表示它完全不可启动,因为它链接到/dev/null。这称为掩蔽单元。这将防止手动或自动启动服务。
列出所有已安装的服务。
这个systemctl list-unit-files命令- t或类型的服务过滤器仅显示已安装服务的状态。
# systemctl list-unit-files -t service
输出
proc-sys-fs-binfmt_misc。加载静态
-.生成的山
dev-hugepages。静态的山
dev-mqueue.mount静态
proc-sys-fs-binfmt_杂项安装静态
sys-fs-fuse-connections.mount static
sys-kernel-config。静态的山
sys-kernel-debug。静态的山
acpid.path已启用
apport-autoreport。启用路径
systemd-ask-password-console.path静态
systemd-ask-password-plymouth.path静态
systemd-ask-password-wall.path静态
会话244.1范围瞬态
会话-250.1范围瞬态
accounts-daemon。服务使
acpid.service已禁用
apache-htcacheclean。服务残疾人阿帕奇-htcacheclean@.service残废
输入。服务启用d
apache2@.service残废
apparmor对。服务启用d
apport-autoreport。服务的静态
阿波特-forward@.service静止的
幻想。服务生成的
apt-daily-upgrade.service静态
要查看所有活动服务单元,请使用带有-t服务过滤器的列表单元。
#systemctl列表单位-t服务
输出
accounts-daemon.service加载的活动运行帐户服务
输入。服务loaded active running The Apache HTTP Server
apparmor.service已加载活动已退出apparmor初始化
apport.service加载的活动退出LSB:自动生成崩溃报告
atd.service加载的活动运行延迟执行计划程序
console-setup。服务loaded active exited Set console font and keymap
containerd。服务loaded active running containerd container runtime
cron.service加载的活动运行常规后台程序处理守护程序
dbus.service加载的活动运行D-Bus系统消息总线
码头工人。运行Docker应用程序容器引擎
ebtables.service loaded active EXIT ebtables规则集管理
fail2ban。服务loaded active running Fail2Ban Service
getty@tty1.service在tty1上加载了正在运行的Getty
grub-common.service加载的活动退出LSB:记录grub的成功引导
ifup@eth0.service loaded active exited ifup for eth0
停止irqbalance。服务loaded active running irqbalance daemon
keyboard-setup.service loaded active退出设置控制台键盘布局
负载反映单元定义是否正确加载。
活跃的=高阶单位激活状态,即SUB的泛化。
附属的=低级别单位激活状态,值取决于单位类型。
在上面的文章中,我们更详细地研究了systemd单元,并使用systemctl命令来探索和管理单元。它还显示了如何停止,启动,启用和禁用单位。如果你觉得这篇文章有帮助,请通过喜欢这篇文章来表达对我们的爱。