自定义系统服务

前言

1.需求分析

Linux自定义系统服务的原因主要有以下几点:

  1. 满足特定需求:有时候,标准的Linux服务可能无法满足特定的业务需求或系统要求。通过自定义系统服务,可以精确地按照需求设计和实现服务,确保系统能够按照预期的方式运行。
  2. 优化资源利用:自定义服务可以针对特定的应用场景进行优化,以更好地利用系统资源。例如,可以调整服务的启动顺序、运行参数或并发处理等,以提高系统的整体性能。
  3. 增强安全性:通过自定义服务,可以更加精细地控制服务的访问权限、通信协议和数据传输方式等,从而增强系统的安全性。这有助于防止未经授权的访问和数据泄露。
  4. 灵活性和可定制性:Linux系统具有高度的灵活性和可定制性,这使得自定义服务成为可能。通过自定义服务,可以根据实际需要添加、删除或修改功能,以满足不断变化的业务需求。
  5. 集成第三方工具或服务:有时候,可能需要将第三方工具或服务集成到Linux系统中。通过自定义系统服务,可以方便地将这些工具或服务集成到系统中,并与其他服务进行协同工作。
  6. 便于管理和维护:自定义服务可以采用统一的配置文件、日志记录和管理接口,使得服务的部署、监控和维护变得更加简单和高效。这有助于降低运维成本和提高系统的稳定性。

Linux自定义系统服务可以更好地满足特定需求、优化资源利用、增强安全性、提高灵活性和可定制性,以及便于管理和维护系统。通过自定义服务,可以构建出更加高效、安全和稳定的Linux系统。

2.创建自定义服务介绍

   在以前的 Linux版本中,如果想要建立系统服务,就要在/etc/init.d/目录下创建相应的bash脚本。现在有了systemd,要添加自定义服务,就要在/usr/lib/systemd/system/目录中编写服务单元文件,服务单元文件的重点是[Service]节,该节常用的字段(指令)如下。
●Type:配置单元进程启动时的类型,影响执行和关联选项的功能,可选的关键字包括 simple(默认值,表示进程和服务的主进程一起启动)、forking(进程作为服务主进程的一个子进程启动,父进程在完全启动之后退出)、oneshot(与simple相似,只是进程在启动单元之后随之退出)、dbus(与simple相似,但随着单元启动后只有主进程得到D-Bus名字)、 notify[与simple 相似,但随着单元启动之后,一个主要信息被sd_notify()函数送出]、idle(与 simple 相似,实际执行进程的二进制程序会被延缓,直到所有的单元的任务完成,主要是避免服务状态和shell混合输出)。
●ExecStart:指定启动单元的命令或者脚本,ExecStartPre和ExecStartPost节指定在 ExecStart之前或者之后用户自定义执行的脚本。Type=oneshot允许指定多个希望顺序执行的用户自定义命令。
●ExecStop:指定单元停止时执行的命令或者脚本。
●ExecReload:指定单元重新装载时执行的命令或者脚本。
●Restart:如果设置为always,服务重启时进程会退出,会通过systemctl命令执行清除并重启的操作。
●RemainAfterExit:如果设置为true,服务会被认为是在活动状态。默认值为false,这个字段只有设置有Type=oneshot时才需要配置。

本文将通过分享我们的方法,帮助大家进行自定义系统服务!(本篇文章由小组成员柏娟、王滢编)

3.配置方法

用root身份登录

su root

编写脚本mydate.sh输出当前时间信息并写入/root/log.txt文件中,每两秒休息一次

vim /root/mydate.sh

在/etc/systemd/system目录下创建服务文件mydate.service

vim /etc/systemd/system/mydate.service

 

 重新加载 systemd配置文件

systemctl daemon-reload

getenforce查看是否开启了SELinux

如果执行getenforce出现enforcing,说明selinux已关闭

getenforce

执行setenforce 0来动态开启selinux

setenforce 0

如出现disabled,则说明selinux已经被彻底的关闭了,如果需要重新开启selinux,请按下面步骤:

vim /etc/selinux/config

更改为:SELINUX=1


必须重启linux,不重启是没办法立刻开启selinux的,开启selinux后再次执行getenforce显示Permissive

 getenforce

启动自定义系统服务mydate.service

systemctl start mydate.service

查看服务状态

systemctl status mydate.service

检验服务运行是否正确

tail -f /root/log.txt

服务启动成功!

综上,就是自定义系统服务的相关内容,如果对您有所帮助,请动动小手留下您的点赞、关注与收藏。我们会继续分享更多的干货,当然,如果有不妥的地方或者是遇到的问题,评论区欢迎您提出宝贵的意见,大家一起学习进步。

  • 69
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值