如何制作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 13:41
下一篇 2018-05-10 14:29

相关推荐

  • MYSQL数据库笔记(一)

    二进制格式安装7.4 1、检查环境 2、下载对应的二进制包 3、 useradd -r -d /data/mysqldb -s /sbin/nologin mysql 创建账号 getent passwd mysql 确认 创建软连接; chown -R root: mysql/ 创建物理卷; 创建逻辑卷;   创建文件系统; mkdir /dat…

    2018-06-07
  • 华为交换机配置

    示例设备华为s5700S-28P-LI-AC 用户视图<HUAWEI>:默认登录 系统视图[HUAWEI]:system-view 接口视图[HUAWEI-GigabitEthernetX/Y/Z]:interface gigabitethernet X/Y/Z X/Y/Z为需要配置的接口的编号,分别对应“槽位号/子卡号/接口序号” 路由协议视图…

    Linux笔记 2018-06-07
  • 启动和内核管理之centos6

    在本章的学习中,你的系统将会被你整的死去活来,在不断地破坏和修复中,熟悉centos的启动流程

    Linux笔记 2018-05-11
  • 小白加薪升职记第一次笔记

    选择了马哥,你就站在了技术的前端。

    2018-05-12
  • 编译安装软件

    编译安装httpd软件 1先配置yum源 准备工作:把所有yum源改成本地光盘 [root@centos7 etc]#find *yum*(查找yum配置目录) 1.[root@centos6 ~]#df .[root@centos6 ~]#cd /misc/cd/ (神奇文件自动挂载)光盘 [root@centos7 yum.repos.d]#ls(说明还…

    Linux笔记 2018-04-22
  • hell脚本基础知识详细介绍

    Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。 它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件…

    Linux笔记 2018-05-14