如何制作Linux服务脚本

Linux服务脚本示例

如何制作一个Linux启动服务

         Linux在启动的时候都会跑很多系统自带的服务脚本,来控制系统服务的开启和关闭。这些服务是系统自带的,我们可以查看这些服务及其对应的脚本(ls /etc/init.d/)。这些服务有独立服务,也有依赖服务,依赖服务有被依赖服务和依赖别的服务。今天我们就来看看怎么来制作一个系统独立服务,方便我们以后需要自己手动写服务脚本的时候做个参考!申明:此次实验服务脚本不带任何系统服务功能,只是一个测试用的没有实际内容的脚本,我们用它来了解系统启动服务的整个流程和相应的理论知识!

8-3

 

1、进入/etc/init.d/目录下(系统启动的服务都放在这个目录下,所以我们自己做的服务脚本也放在这里),编辑一个测试服务脚本(vim testsrv)。

8-1

注释:进入vim编辑器

服务脚本有三行格式是必须要写上的:#!/bin/bash,#/chkconfig,#description。

# chkconfig :  runlevels  ss  kk (runlevels:表示系统启动的模式(0-6),一般用3和5,;ss:表示开始运行的次序,kk:表示关闭程序的次序,- :表示七种模式都不启动)

第一行:首先说明脚本是在什么shell下运行:bash shell

第二行:写出我们服务脚本必须要有的内容:指明系统启动模式、服务运行及关闭次序

第三行:脚本描述,此处的脚本为测试脚本

这三行写完后,我们就可以写服务脚本的正文了,写出此服务脚本的工作内容。

 

2、在这里我就用一个case语句来完成我们测试脚本的开启、关闭、以及状态检测。

8-2

source /etc/init.d/functions:我们把系统脚本functions写入我们的脚本是方便我们下面调用它里面的action,关于action我们下面再说。

/var/lock/subsys/testsrv:系统开启和关闭的过程中,会去检查/var/lock/subsys下的文件,逐一关闭每个服务。所以我们可以用来判断文件是否存在,进而判断服务的状态。

action:关于action,我们可以来查看functons文件中的action的作用,如下图1所示:less functions  /action,我们可以看到定义了action的作用是打印出相关操作的结果并用特定的颜色显示;图2为我们很好的展示了系统的自带的functions中action的作用,打印出来的结果直观而且很好看,我们的实验中就可以直接调用functions中的action功能。

8-5

8-4

 

3、脚本编辑完成,加上执行权限,测试脚本的功能。

chmod +x /etc/init.d/testsrv ,现在我们已经可以直接把这个脚本拿过来用了,我们现在来执行一下这个脚本,如下图所示:服务的开启,关闭以及状态查询都是正常的,并且服务开启后也会在相应的目录(/var/lock/subsys/)下生成testsrv文件。但是,现在的脚本我们还没有把它添加到系统真正的服务列表里去,我们可以用chkconfig –list来查看,所以相应的/etc/rc5.d/下面也就还没有testsrv相应的文件。接下来我们就要把这个服务脚本加到服务列表里去,让它跟其他的系统启动服务一样正常的工作。

8-6

 

4、添加服务,并验证服务的功能

8-7

如上图所示:用 chkconfig –add testsrv 命令添加服务到系统服务的列表里,然后用 chkconfig –list testsrv 检测服务的相关设置都是正确的(3和5模式下为on)。

testsrv 服务添加以后我们应该就可以从相应的目录下看到我们设置的服务启动顺序,如下图所示:可以看到s95打头的文件。

8-8

我们也可以后续用命令更改服务的启动和关闭:chkconfig –level 3/5 testsrv off ,这样我们可以控制此服务需不需要在3和5模式下运行,当然我们也可以直接更改服务的脚本里面的设置,顺带验证我们脚本功能的完整性,如下图所示:我们把testsrv的3和5模式下关闭运行,那么就会在相应的文件中生成K03打头的文件,说明,脚本没有为问题。

8-9

 

5、至此,我们自己写的服务脚本已经全部测试完毕。那么系统在下次重启的时候就会在启动列表里展示此服务!OK!

8-10

 

        我们自己写的服务一定要注意脚本的格式和内容的准确定,不能有BUG和格式问题。在添加服务的时候也要注意,测试好后再去使用。虽然都是高手,但是避免出现很多系统崩溃的问题。

 

 

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/98033

(1)
JllbcJllbc
上一篇 2018-05-10
下一篇 2018-05-10

相关推荐

  • 一些常用的文本工具

    cat命令:查看文本内容 cat [选项]… [文件]… -E    显示行结束符 -n    显示文本内容时显示行号 -A    显示所以控制符 -b    非空行编号 -s     压缩连续的空行成一行 head命令 : -n  显示文件前n行,默认显示前10行 -c # 显示文件前#个字节内容 tail命令: tail [选项]…

    2018-04-09
  • 学习笔记(19)

    学习笔记

    Linux笔记 2018-05-13
  • 使用diff同patch工具

    Linux命令使用

    Linux笔记 2018-07-14
  • 網絡屬性配置一

    網絡屬性配置一 一. ifconfig的应用 (一)配置网络接口: #ifconfig (只显示活动状态的接口) ifconfig -a(显示所有接口) 配置地址: 注意(掩码的两种的写法) #ifconfig 接口 指定的IP/NETMASK 1.#ifconfig ens37 172.20.110.11/16 (IP改为172.20.110.11/16)…

    Linux笔记 2018-05-03
  • N31第三周作业

    本周(7.2–7.8)第3周 1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可 [a@localhost ~]$ who | cut -d” ” -f1 | sort -u a [a@localhost ~]$ who a pts/0 2018-07-09 09:14 (192.16…

    Linux笔记 2018-07-09
  • Linux基本指令

    hostname  完整主机名cat +文件路径  可查看文件信息cat /etc/shells  显示所有shelluname -r    查看内核版本ls cpu   查看cpu信息free命令  查看内存 后面加-k是显示的内存以kb为单位,-m(MB),-g(GB),-h显示易读单位lsblk  查看硬盘dmesg  查看计算机启动的一些相关信息dm…

    2018-07-22