提示:作者该操作都是在普通用户进行的,所以输入命令时记得提权(sudo)
前言
本次编写Systemd Service使用的是Redhat9,以下将分三个模块让你更了解此操作。
systemd是一个系统和服务管理器,用于启动、停止和管理系统上运行的各种服务和进程。systemd服务是一种配置文件,用于定义和描述系统上运行的服务的属性和行为。
编写systemd服务的作用是将一个应用程序或服务以服务的形式运行在Linux系统中,并能够在系统启动时自动启动、在系统关闭时自动关闭。通过systemd服务,可以方便地管理服务的启动顺序、依赖关系、运行环境等。
提示:以下是本篇文章正文内容,下面案例可供参考
一、Linux系统编写Systemd Service的功能?
使用systemd服务可以实现以下功能:
- 自动启动和关闭服务:通过systemd服务,可以将服务配置为在系统启动时自动启动,以及在系统关闭时自动关闭。
- 控制服务的启动顺序和依赖关系:systemd允许我们指定服务的启动顺序和依赖关系,确保服务在正确的顺序下启动。
- 监控和管理服务运行状态:systemd可以监控和管理服务的运行状态,包括启动、停止、重启等操作,并可查看服务的日志。
- 资源限制和隔离:通过systemd服务,可以为每个服务指定资源限制,以避免服务过度占用系统资源。同时,systemd还支持服务间的隔离,提高系统的安全性和稳定性。
- 管理服务的环境变量和参数:通过systemd服务,可以方便地设置和管理服务的环境变量和参数,以便于配置和定制服务的行为。
二、步骤
1.使用shell/c/c++/java编写脚本
注意date用的是反引号
代码:
#!/bin/bash
while true
do
echo `date`>> /root/systemd_test.txt
sleep 2
done
使用vim命令进行脚本编写
输入:wq!或者:x!保存以下编辑的内容
2.编写Systemd service
代码如下(示例):
[Unit]
Description=date daemon
[Service]
ExecStart=/root/systemd_test.sh
Restart=always
Type=simple
[Install]
WantedBy=multi-user.target
输入命令cat /usr/lib/systemd/system/systemd_test.service查看并确保文件内容如上
3.确保服务文件位置
编写systemd service,文件应该放在/etc/systemd/system目录下,由于害怕失误我将文件拷贝了一份将其放入/etc/systemd/system目录下,你们也可以选择不拷贝。
错误示例:
正确示例:
用pwd查看当前所处位置再进入system下输入命令:
sudo cp /usr/lib/systemd/system/systemd_test.service /usr/lib/systemd/system/systemd_test_copy.service
拷贝文件
输入ls确认拷贝成功
输入命令:sudo mv /usr/lib/systemd/system/systemd_test_copy.service /etc/systemd/system/systemd_my.service将文件移到/etc/systemd/system下
以下图片仅供参考:
4.启动服务
我们已经确保了文件位置与文件内容正确需要执行以下运行命令:
sudo systemctl daemon-reload | 重新加载 systemd 的配置 |
systemctl start systemd_my.service | 启动服务 |
systemctl status systemd_my.service | 查看服务状态 |
注意:systemd_my.service是你自己为服务取得名字 ,如果以上操作仍无法启动服务则有可能存在SELinux 的问题您尝试使用 sudo setenforce 0
来禁用 SELinux(Security-Enhanced Linux),这是一个 Linux 内核模块,提供访问控制安全策略。但是,禁用 SELinux 通常不会解决 systemd 服务未找到的问题。SELinux 主要是用来限制进程对文件和资源的访问,而不是用来控制 systemd 服务的存在性。
输入sudo setenforce 0命令后,再执行一遍表格中的命令
如下图则表示成功:
输入命令tail -f /root/systemd_test.txt
如出现以下情况则需要修改权限:
输入命令:sudo
修改权限后,再执行一遍:tail -f /root/systemd_test.txt
出现如下图内容则表示成功:
总结
以上是编写和使用systemd服务的基本步骤,编写systemd服务可以使我们更方便地管理和控制Linux系统上运行的各种服务和进程,提高系统的可靠性和可管理性,希望大家有所收获。