Linux自定义系统服务

目录

Linux自定义系统服务

背景:

具体步骤:

1.进入Linux虚拟机,并进行远程连接

2.进入到根目录(/root)下,编写一个任务脚本

3.给任务脚本添加可执行权限

4.执行任务脚本,并查看脚本是否正常运行

5.编写一个与脚本文件配套的服务单元文件

6. 重新装载单元文件, 并使mydate服务开机启动

7.查看服务运行状态

8.检验服务是否还在正常运行


Linux自定义系统服务

背景:

Systemd是一种Linux系统下的初始化系统和服务管理器,它的目标是提供更优秀的框架来表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时降低Shell的系统开销。它取代了早期的SysV init和Upstart等初始化系统,成为了现代Linux系统中的标准初始化系统。Systemd在Linux启动时负责初始化系统,启动用户空间和系统服务,以及管理系统进程的生命周期。它是Linux启动过程中的第一个用户空间进程。此外,Systemd还接管了后台服务、结束、状态查询,以及日志归档、设备管理、电源管理、定时任务等许多职责。它支持通过特定事件(如插入特定USB设备)和特定端口数据触发的按需任务。

在最新的Linux系统中,如RedHat 7、CentOS 7和Ubuntu 15等,都采用了systemd进行管理。在CentOS 7中,systemd支持开机并行启动服务,显著提高了开机启动效率,并且只关闭正在运行的服务,而不是像CentOS 6那样全部关闭一次。此外,CentOS 7还使用systemd解决了原有模式的缺陷,如原有service不会关闭程序产生的子进程等问题。 

具体步骤:

1.进入Linux虚拟机,并进行远程连接

2.进入到根目录(/root)下,编写一个任务脚本

这个脚本被命名为:mydate.sh,且内容如下:

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

这个脚本的意义是:将系统时间写入root目录下的日志文件中,而且每两秒重复一次。(注:内容中的 反单引号是引用的含义,date指系统时间,sleep 2指每隔两秒显示一次)

3.给任务脚本添加可执行权限

执行 chmod +x mydate.sh目录给任务脚本添加可执行的权限。

4.执行任务脚本,并查看脚本是否正常运行

执行Bash(.) mydate.sh命令执行任务脚本。

执行cat /root/log.txt命令查看脚本的运行情况。

如果在root目录下的日志文件中每隔两秒显示一次系统时间,则说明脚本正常运行。(这里通常是要再开一个终端用来查看脚本运行情况的,因为前面那个脚本在运行时,无法退出运行状态)

5.编写一个与脚本文件配套的服务单元文件

我们在这个命名为example.service,并且将这个文件放到/etc/systemd/system目录下。文件内容如下:

[Unit]
Description=mydate

[Service]
Type=simple
ExecStart=/bin/bash /root/mydate.sh
Reatart=always

[Install]
WantedBy=multi-user.target

6. 重新装载单元文件, 并使mydate服务开机启动

重新加载systemd服务,并启动mydate服务。

Systemctl daemon-reload
Systemctl start example.service

7.查看服务运行状态

Systemctl status example.service

这里我们可以看到example.service是active(running)状态,也就是正常运行状态。

8.检验服务是否还在正常运行

Cat /root/log.txt

综上所述,Linux自定义系统服务就创建完成了。

常见的问题:

1.服务配置错误

服务配置文件可能包含错误的参数或格式,导致服务无法正确启动或运行。这通常发生在编辑或更新服务配置文件时,比如systemd的.service文件。(这个问题是最为常见的,因为每每进行配置文件的编辑时,总会有那么几个单词的错误导致后续的运行失败)

2.权限问题

服务可能需要以特定的用户或用户组身份运行,以确保其拥有足够的权限访问必要的资源。如果权限设置不当,服务可能无法启动或执行其任务。

3.启动失败

服务在启动时可能因各种原因失败,如待执行的文件找不到、文件无执行权限、Python依赖的包无法执行等。这通常涉及到检查服务的启动脚本、文件路径和权限设置。

4.日志和状态检查

当服务出现问题时,检查服务的日志和状态通常是解决问题的第一步。如果日志记录不足或状态信息不明确,可能会增加诊断和解决问题的难度。

  • 28
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值