linux自定义系统服务

目录

1.Linux自定义系统服务的概念

2.Linux自定义系统服务的作用

3.Linux自定义系统服务操作步骤

1.在目录下新建一个文件夹,编辑你需要的服务

2.在/etc/systemd/system/目录下新建service文件即可创建我们的服务

3.刚刚我们建立好了服务配置,现在就可以使用了!在此之前需要先使用下列命令让系统重新读取所有服务文件

4.开启你的自定义服务

5.查看服务状态

​编辑

6.如果执行失败的话看一下你的权限是否开启了

7.我们查看之前创建的log.txt文件日志,进行服务是否再执行

4.总结


1.Linux自定义系统服务的概念

在Linux中,自定义系统服务是指用户根据特定需求创建的后台服务或任务,并使用 Systemd 来管理这些服务的启动、停止、重启和状态。 Systemd 是一种系统和服务管理器,它负责系统引导过程中的启动、守护进程管理、维护系统状态等任务。自定义系统服务允许用户将自己的应用程序或脚本作为服务运行,并受到 Systemd 的管理和监控。

2.Linux自定义系统服务的作用

1.提供特定功能:自定义系统服务可以实现用户自定义的功能,如监控、数据处理、定时任务等。用户可以编写自己的服务程序或脚本,并将其注册为系统服务,以便系统在需要时启动和运行。
2.简化管理:通过将常用功能封装成系统服务,可以简化系统管理和维护的流程。用户可以通过服务管理命令(如systemctl)方便地启动、停止、重启或查看服务的状态,而无需手动操作每个功能模块。
3.提高可靠性:将功能模块化并以服务的形式运行,可以提高系统的可靠性和稳定性。系统服务通常具有自动重启功能,一旦服务异常退出,系统会自动尝试重新启动服务,从而减少因服务故障而导致的系统中断或异常。
4.实现自动化任务:自定义系统服务可以用于实现各种自动化任务,如定时备份、数据同步、日志轮转等。用户可以编写脚本并将其注册为服务,以便系统在预定的时间自动执行这些任务,提高系统的效率和可靠性。

5.集成日志管理: Systemd可以集成系统日志,并提供统一的日志管理和查看方式。通过Systemd,可以轻松查看服务的日志输出,帮助诊断和排查问题。

3.Linux自定义系统服务操作步骤

1.在目录下新建一个文件夹,编辑你需要的服务

这里随便命名的(我们以写入时间为例,写入代码)内容如下:

vim mydate.sh

#! /bin/bash
while true; do
        echo `date` >> /root/log.txt
        sleep 2
done

该代码意思是在/tmp临时目录下的log.txt文件输出时间,所以我们也要在/tmp下创建一个log.txt文件夹(注意:date上的为反引号不是单引号,如果打为单引号就会直接输出date这个字符)

2.在/etc/systemd/system/目录下新建service文件即可创建我们的服务

cd /etc/systemd/system

根据自己的需求写入配置

vim mydate.service

[Unit]
Description=mydate

[Service]
Type=simple
ExecStart=/root/mydate.sh

[Install]
WantedBy=multi-user.target

解释:每一个服务在Linux有它自己的对应的配置文件,这个文件可以通过文本编辑器编辑,扩展名为xxx.servive(xxx为服务名称)。这些文件位于/usr/lib/systemd/system目录下。

服务脚本说明

主要分成三个部分:[Unit] [Service] [Install]

Unit表明该服务的描述,服务的依赖关系。比较典型的情况是单元A要求在单元B启动之后再启动。这种设置是通过Unit下面的Requires、After、Before、Wants来调整的。常用的命令有:

Description:一般是服务简短的描述。

Documentation:一般是服务文档的链接等。

Requires:一般写本服务依赖的其他服务,启动本服务时,一般会并行的启动该服务和它所依赖的服务,如果它依赖的服务启动失败了,本服务将无法启动成功。

Wants:与Requires类似,但是相对宽松一些,即使依赖的服务启动失败了,本服务也可以继续正常启动,一般的依赖都推荐使用这个命令。

BindsTo:和Requires=类似,但是如果依赖的服务停止了,本服务也会停止。

Before和After:这两个需要和上面描述依赖关系的命令一起使用,表示依赖的当前服务与依赖的服务启动的先后顺序,Before表示当前服务启动成功后才可以启动依赖服务,After则相反。

Conflicts:这个命令后面跟的服务将不能和当前服务同时运行,如果当前服务运行则会导致该命令列举的服务被停止。

Condition…:这个命令往往和许多其他命令一起使用,用来测试一些条件,比如测试当前的操作系统。如果条件不满足,则跳过当前服务的启动。

Assert…:和Condition…类似,但是如果条件检测不满足会导致失败。

3.刚刚我们建立好了服务配置,现在就可以使用了!在此之前需要先使用下列命令让系统重新读取所有服务文件

执行:systemctl daemon-reload 进行读写

systemctl daemon-reload

4.开启你的自定义服务

systemctl start mydate.service

5.查看服务状态

systemctl status mydate.service

6.如果执行失败的话看一下你的权限是否开启了

getenforce

执行getenforce后为Permissive则是开启了,如果不是Permissive,执行setenforce 0为自己提供权限

setenforce 0

重新启动服务

7.我们查看之前创建的log.txt文件日志,进行服务是否再执行

执行 tail -f /root/log.txt

tail -f /root/logtxt

可见我们自己写的服务也在运行了!!!

4.总结

     通过这个实验,你学会了如何创建并管理自定义的Linux系统服务。这个过程涵盖了编写服务脚本、创建Systemd服务单元文件、加载和启用服务以及验证服务状态的步骤。自定义系统服务可以帮助你实现自动化管理和监控,在Linux系统中更高效地运行和维护你的应用程序或任务。

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值