linux系统编写Systemd Service方法(Redhat9)

提示:作者该操作都是在普通用户进行的,所以输入命令时记得提权(sudo)


前言

本次编写Systemd Service使用的是Redhat9,以下将分三个模块让你更了解此操作。

systemd是一个系统和服务管理器,用于启动、停止和管理系统上运行的各种服务和进程。systemd服务是一种配置文件,用于定义和描述系统上运行的服务的属性和行为。

编写systemd服务的作用是将一个应用程序或服务以服务的形式运行在Linux系统中,并能够在系统启动时自动启动、在系统关闭时自动关闭。通过systemd服务,可以方便地管理服务的启动顺序、依赖关系、运行环境等。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Linux系统编写Systemd Service的功能

使用systemd服务可以实现以下功能:

  1. 自动启动和关闭服务:通过systemd服务,可以将服务配置为在系统启动时自动启动,以及在系统关闭时自动关闭。
  2. 控制服务的启动顺序和依赖关系:systemd允许我们指定服务的启动顺序和依赖关系,确保服务在正确的顺序下启动。
  3. 监控和管理服务运行状态:systemd可以监控和管理服务的运行状态,包括启动、停止、重启等操作,并可查看服务的日志。
  4. 资源限制和隔离:通过systemd服务,可以为每个服务指定资源限制,以避免服务过度占用系统资源。同时,systemd还支持服务间的隔离,提高系统的安全性和稳定性。
  5. 管理服务的环境变量和参数:通过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系统上运行的各种服务和进程,提高系统的可靠性和可管理性,希望大家有所收获。

  • 27
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值