控制服务与守护进程_Systemd

本文介绍了Systemd的基础知识,包括如何查看服务状态、管理服务的启动与停止、服务的依赖关系以及开机启动服务。此外,还涉及了目标(target)的选择和切换,以及如何进行系统诊断和故障修复。内容涵盖systemctl命令的各种用法,是理解Systemd服务管理和Linux系统控制的重要参考。

Sytemd 的介绍
一个服务经常关系到多个服务。在7版本中,PID1是systemd,新的init system.
查看服务状态。

systemctl status service

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

systemctl list-units --type=service #查看active状态 -all将添加inactive单元。
systemctl list-units --type=service --all

systemctl list-units-files --type=service #查看 enable和disable单元设置。

system --falied --type=service #仅查看failed服务。

开启与停止系统守护进程。

systemctl stop sshd.service #停止sshd服务。
systemctl start sshd.service #开启sshd 服务。

Reload 与restart,reload重新加载服务,进程不会断掉,PID号不改变;restart关闭服务再开启,给予 新的PID号。

systemctl reload sshd.service
systemctl restart sshd.service

systemctl list--dependencies --type=service #查看服务的依赖服务。

Masking 服务。即便使用restart也不能开启。用于两个服务冲突,只能使用一个如:iptables,firewalld

systemct	l mask iptables #禁止iptables
systemctl unmask iptables #解锁iptables

在开机的时候开启服务或者停止服务。

systemctl enable sshd #在开机的时候开启服务 类似于6版本的chkconfig on
systemctl disable sshd 

在这里插入图片描述
控制BOOT进程
选择systemd target
在这里插入图片描述

systemctl list-dependencies graphical.target | grep target #查看target的依赖关系
systemctl list-units --type=target --all #查看所有可用的target
systemctl list-unit--files --type=target --all #查看已经安装在磁盘的target

1.systemctl isolate multi-user.taget #临时切换到命令模式。

2.systemctl get-default #查看默认的target
  systemctl set-default graphical.target #设置默认的target

3.systemd.unit=rescue.target #在开机的时候启动target,设置在linux 16行

诊断和修复 systemd boot
如果在开启服务的时候出现问题,可以使用#systemctl enable debug-shell.service
或者进入紧急和救援模式。

systemctl list-jobs systemd #产生一堆作业号码,用于排错。

请珍惜劳动成果,支持原创,欢迎点赞或者关注收藏,你每一次的点赞和收藏都是作者的动力,内容如有问题请私信随时联系作者,谢谢!

<think>好的,用户问的是-DWITH_SYSTEMD,我需要先确定这个选项的上下文。通常以-D开头的选项在编译软件时出现,比如CMake项目。所以可能和CMake有关。 接下来,回忆一下常见的系统服务管理工具,systemdLinux中常用的。所以这个选项可能是在编译某个软件时,启用对systemd的支持。比如MySQL、PostgreSQL等数据库在编译时可能会用到这个选项,以便集成systemd服务管理。 需要验证这个猜测是否正确。检查一些项目的编译文档,比如MySQL确实有DWITH_SYSTEMD选项,用于生成systemd服务文件,而不是旧的init.d脚本。这样用户可以使用systemctl来管理服务,实现更好的启动、停止和日志集成。 另外,要确认这个选项的作用。启用后,编译后的软件会安装service文件,可能还会调整守护进程的行为,以便systemd更好地配合,比如信号处理、日志通过journald记录等。 还要考虑用户可能的需求。用户可能是在编译安装时遇到了相关问题,或者想了解如何启用systemd支持。需要说明如何正确使用该选项,比如在CMake命令中添加-DWITH_SYSTEMD=ON,并确保系统安装了systemd的开发库,否则可能会编译失败。 最后,提醒用户注意依赖问题,比如需要systemd-devel或类似包,以及如何检查是否成功启用,例如查看生成的service文件是否存在。</think>在软件编译过程中,`-DWITH_SYSTEMD` 是一个常见的 **CMake 编译选项**,用于启用对 systemd 系统和服务管理器的支持。以下是逐步说明: --- ### 1. **作用背景** - **Systemd 是什么**:Linux 系统中用于管理守护进程(daemon)的初始化系统,替代传统的 SysV init 系统。 - **`-DWITH_SYSTEMD` 的用途**: 当编译软件(如 MySQL、Redis 等)时,启用此选项会: - 生成 systemd 服务文件(`.service` 文件) - 确保软件通过 systemd 的机制管理进程(如日志集成、进程监控等) --- ### 2. **典型使用场景** - **编译安装数据库/服务**:例如 MySQL 官方文档明确要求,若需通过 systemd 管理 MySQL 服务,编译时必须添加此选项。 - **替代旧式 init 脚本**:传统的 `/etc/init.d/` 脚本会被 systemd 服务文件取代。 --- ### 3. **具体操作步骤** 假设以编译 MySQL 为例: ```bash cmake . -DWITH_SYSTEMD=1 # 启用 systemd 支持 make sudo make install ``` - **效果**:安装后可通过 `systemctl start mysql` 管理服务--- ### 4. **依赖条件** - **系统需预装 systemd 开发库**: 若编译报错,可能需要安装 `systemd-devel`(CentOS/RHEL)或 `libsystemd-dev`(Debian/Ubuntu)。 --- ### 5. **验证是否生效** 检查生成的 systemd 服务文件: ```bash ls /usr/lib/systemd/system/mysql.service # 路径可能因软件而异 ``` --- ### 6. **注意事项** - **其他选项冲突**:某些软件中,`-DWITH_SYSTEMD` `-DUSE_SYSV`(旧式 SysV init 脚本)互斥。 - **日志行为变化**:启用后,日志可能通过 `journalctl` 查看,而非直接写入文件。 --- ### 总结 `-DWITH_SYSTEMD=ON` 是软件适配现代 Linux 系统的重要编译选项,尤其对需要 systemd 集成管理的服务类软件(如数据库、Web 服务器)至关重要。使用前需确保系统环境满足依赖。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小Eason哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值