前言
配置systemd服务在Linux系统中具有多个重要的原因,这些原因涵盖了系统稳定性、管理便利性、资源利用以及安全性等方面。
一,systemd服务
systemd是Linux下一个与SysV和LSB初始化脚本兼容的系统和服务管理器。它使用socket和D-Bus来开启服务,提供基于守护进程的按需启动策略,并保留了Linux cgroups的进程追踪功能。systemd支持快照和系统状态恢复,维护挂载和自挂载点,实现了各服务间基于从属关系的更为精细的逻辑控制,并具备前卫的并行性能。此外,systemd无需经过任何修改便可替代sysvinit。
systemd守护进程管理Linux的启动,包括服务启动和服务管理,它可以在系统引导时以及运行中的系统上激活系统资源、服务器守护进程和其他进程。守护进程是执行各种任务的后台等待或运行的进程,它们通常在系统引导时自动启动并持续运行至关机或被手动停止。
systemd提供的功能包括并行化功能以提高系统的启动速度,按需启动守护进程而不需要单独的服务,以及自动服务依赖关系管理以防止长时间等待。它还利用Linux控制组一起追踪相关进程的方式。
systemd的单元类型主要包括服务单元(.service)、与开机启动有关的单元(.target)以及套接字单元(.socket)。每种类型的单元都有一个单元配置文件,systemd的管理工具systemctl通过读取这些单元配置文件来启动和管理相应的进程。
当systemd服务出现问题时,可能涉及依赖关系问题、权限问题以及服务日志分析等。可以使用systemctl命令查看服务的依赖关系、运行用户和组,以及查看特定服务的日志。此外,还可以使用systemctl命令重启服务以解决临时问题。
总的来说,systemd是一个功能强大且灵活的系统和服务管理器,它为Linux系统提供了高效、可靠的服务管理解决方案。如需更多关于systemd服务的详细信息,建议查阅相关文档或咨询专业的系统管理员
二,关闭守护进程
进入root运行
setenforce 0或者sudo setenforce 0
三,查看状态
运行代码查看
getenforce
四,编辑脚本
通过vim在systemd_test.sh文件中编辑脚本
#!/bin/bash
while true
do
echo data >> /root/systemd_test.sh
sleep 2
done
并通过cat systemd_test.sh将脚本输出到终端
五,编辑systemd.service文件
使用 vim
文本编辑器来编辑位于 /etc/systemd/system/
目录下的 systemd.service
文件
使用 cat
命令来显示 /etc/systemd/system/
目录下名为 systemd.service
的文件内容。cat
命令用于连接并打印文件的内容到终端。
[Unit]
部分是一个节(section),用于定义关于服务单元本身的元数据和其他通用设置。这些设置有助于 systemd
了解如何管理该服务。
Description=
: 服务的简短描述。
[Service]
部分是用于定义服务单元的实际执行行为的。它包含了启动、停止、重启服务时所需的具体指令和配置。
ExecStart=
: 定义启动服务时要执行的命令。
Restart=
: 定义服务退出后是否重启,以及如何重启(例如 always
、on-failure
、on-abnormal
等)。
Type=
: 定义服务的启动类型,例如 simple
(默认值,立即启动服务)、forking
(服务启动后会派生一个子进程,然后父进程退出)、dbus
(等待 D-Bus 信号)、oneshot
(执行一次任务然后退出)、dbus-notify
(等待 D-Bus 信号后退出)等。
[Install]
部分用于定义服务单元的安装信息。这些信息决定了当使用systemctl enable
命令时,服务单元文件应该被链接到哪个目标(target),以便在系统启动时自动启动该服务。
WantedBy=
: 定义了哪些目标(target)需要这个服务单元。当这些目标被激活时,服务会被启动
六,查看目录并将systemd_test.sh转移到 /home目录下
通过ls查看当前目录中的文件和子目录
在通过mv systemd_test.sh /home将当前目录下的 systemd_test.sh
文件移动到 /home
目录下
然后通过ls或者ls /home代码查看是否转移成功
七,运行并启动systemd服务
systemctl daemon-reload
是一个 systemd
的命令,用于通知 systemd
重新加载其服务配置文件。
systemctl start systemd.service
这个命令的意图是启动名为 systemd.service
的服务。
systemctl status systemd.service
这个命令用于查看 systemd
服务的状态。
总结
配置systemd服务是一个用于管理系统服务和进程的重要过程。通过systemd,你可以方便地启动、停止、重启和管理各种系统服务。