17.2 【Linux】通过 systemctl 管理服务

简介: 17.2 【Linux】通过 systemctl 管理服务

systemd这个启动服务的机制,是通过一支名为systemctl的指令来处理的。跟以前 systemV 需要 service / chkconfig / setup / init 等指令来协助不同, systemd 就是仅有systemctl 这个指令来处理而已。

17.2.1 通过 systemctl 管理单一服务 (service unit) 的启动/开机启动与观察状态


关掉atd不应该使用kill的方式来关掉一个正常的服务,否则systemctl会无法继续监控该服务。使用 systemtctlstatus atd 的输出结果中,第 2, 3 两行很重要~因为那个是告知我们该 unit 下次开机会不会默认启动,以及目前启动的状态。


基本上有几个常见的状态:


active (running):正有一只或多只程序正在系统中执行的意思,举例来说,正在执行中的 vsftpd 就是这种模式。


active (exited):仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行。举例来说,开机或者是挂载时才会进行一次的 quotaon 功能,就是这种模式! quotaon不须一直执行,只须执行一次之后,就交给文件系统去自行处理。通常用 bash shell写的小型服务,大多是属于这种类型 (无须常驻内存)。


active (waiting):正在执行当中,不过还再等待其他的事件才能继续处理。举例来说,打印的伫列相关服务就是这种状态! 虽然正在启动中,不过,也需要真的有伫列进来 (打印工作) 这样他才会继续唤醒打印机服务来进行下一步打印的功能。


inactive:这个服务目前没有运行的意思。


enabled:这个 daemon 将在开机时被执行


disabled:这个 daemon 在开机时不会被执行


static:这个 daemon 不可以自己启动 (enable 不可),不过可能会被其他的 enabled的服务来唤醒 (相依属性的服务)


mask:这个 daemon 无论如何都无法被启动!因为已经被强制注销 (非删除)。可通过systemctl unmask 方式改回原本状态服务启动/关闭与观察的练习


服务启动/关闭与观察的练习


问题:找到系统中名为 chronyd 的服务,观察此服务的状态,观察完毕后,将此服务设置为: 1)开机不会启动 2)现在状况是关闭的情况!回答:我们直接使用指令的方式来查询与设置看看:

强迫服务注销 (mask) 的练习


比较正规的作法是,要关闭 cups.service 时,连同其他两个会唤醒 service 的 cups.socket 与cups.path 通通关闭,比较不正规的作法是,那就强迫 cups.service 注销,通过 mask 的方式来将这个服务注销看看!

那如何取消注销呢?当然就是 unmask。


相关文章
|
24天前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
246 146
|
1月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
229 11
|
6月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
529 25
|
7月前
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
190 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
|
9月前
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
648 19
|
9月前
|
监控 Linux
Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
通过以上步骤,可以有效解决 systemd 服务启动失败并报错 `Main process exited, code=exited, status=203/EXEC` 的问题。关键在于仔细检查单元文件配置、验证可执行文件的有效性,并通过日志分析具体错误原因。确保可执行文件路径正确、文件具有执行权限,并且可以独立运行,将有助于快速定位和解决问题。
4241 7
|
10月前
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
|
Linux
linux中服务管理
在Linux服务管理中,从传统的System V init到Upstart,再到广泛采用的systemd,管理方式不断发展。systemd以其强大的功能和依赖解决成为现代Linux的核心。`systemctl`是管理服务的关键命令,如启动(`start`)、停止(`stop`)、重启(`restart`)服务及设置开机启动(`enable`)或取消(`disable`)。了解和服务管理,特别是systemd和`systemctl`的使用,对系统管理员至关重要。其他如xinetd用于控制网络服务,而特定环境下有OpenRC等工具。
170 2
|
安全 Ubuntu 网络协议
Linux中的服务管理
Linux系统可以同时运行数百个任务。其中大多数都属于操作系统环境的组成部分,不过可能也会有那么一两个你不需要的**守护进程**。有3种可用于启动守护进程和服务的工具,Linux发行版支持其中任意一种。传统的SysV系统使用/etc/init.d中的脚本。较新的systemd守护进程除了使用/etc/init.d之外,还用到了systemctl调用。还有些发行版使用的是upstart,配置脚本保存在/etc/init中。systemd如今已经取代了SysVinit系统。upstart是由Ubuntu开发并采用的,但是在14.04版中,已经改成了systemd。
310 3
|
Ubuntu 关系型数据库 MySQL
【Linux进阶篇】启动流程和服务管理
【Linux进阶篇】启动流程和服务管理
296 0