• linux 添加 service 服务并自动添加 chkconfig 启动级别


    下面以添加一个叫做watchcat的服务为例进行说明:

    1、写一个提供给service命令使用的脚本

    service 命令的使用方法一般如下

    启动:

    $ service watchcat start

    停止:

    $ service watchcat stop

    重启:

    $ service watchcat restart

    所以这个watchcat脚本就需要至少接受这三个命令

    大概如下:$ cat watchcat

    #!/bin/bash
    
    function start_cat()
    {
        echo "cat run ..."
    }
    
    function stop_cat()
    {
        echo "cat stop ..."
    }
    
    case "$1" in
        start)
        start_cat
        ;;  
    
        stop)
        stop_cat
        ;;  
    
        restart)
        stop_cat
        start_cat
        ;;
        *)
        echo "Usage : start | stop | restart"
        ;;
    esac
    View Code

    注:这个脚本不是最终脚本,还不能作为服务使用

    2、还需要让这个脚本被 chkconfig 支持

    其实这个很重要,那就是在刚刚的脚本上面添加几行注释,这几行只是是用来给chkconfig使用的。也就是说,当chkconfig 看到这几行注释的时候,它是不会把这几行当做注释的。

    完整的脚本如下:

     1 #!/bin/bash
     2 #
     3 # watchcat    start/stop cats
     4 #
     5 # chkconfig: 12345 80 90
     6 # description: start/stop cats
     7 #
     8 ### BEGIN INIT INFO
     9 # Description: start/stop cats
    10 ### END INIT INFO
    11 
    12 function start_cat()
    13 {
    14     echo "cat run ..."
    15 }
    16 
    17 function stop_cat()
    18 {
    19     echo "cat stop ..."
    20 }
    21 
    22 case "$1" in
    23     start)
    24     start_cat
    25     ;;  
    26 
    27     stop)
    28     stop_cat
    29     ;;  
    30 
    31     restart)
    32     stop_cat
    33     start_cat
    34     ;;
    35     *)
    36     echo "Usage : start | stop | restart"
    37     ;;
    38 esac

    现在这个脚本算是可以正式使用了。

    上面代码的第5行是必须的,这是给chkconfig看的。

    第5 行的12345是表示这个watchcat 程序是需要在系统的运行级别为1、2、3、4、5的时候都进行启动的。80和90 的意思是在rc1.d/~rc5.d/目录下建立S80xxxxx和K90xxxxx的链接文件的。

    3、配置watchcat的service支持

    首先给watchcat添加可执行权限:

    $ chmod 775 watchcat

    把脚本添加复制到/etc/init.d/目录下

    $ cp watchcat /etc/init.d/
    cp: cannot create regular file `/etc/init.d/watchcat': Permission denied
    $ sudo cp watchcat /etc/init.d/

    此时就可以使用service进行控制了,如下:

    $ service watchcat start
    cat run ...
    $ service watchcat stop
    cat stop ...

    4、然并卵,这只是完成了手动控制的阶段,还需要开机启动

    先查看一下:
    $ chkconfig --list watchcat service watchcat supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add watchcat')
    说我们没有添加这个叫watchcat的服务,所以进行添加: $ chkconfig
    --add watchcat You do not have enough privileges to perform this operation. $ sudo chkconfig --add watchcat
    检查添加后的结果:
    $ chkconfig --list watchcat watchcat 0:off 1:on 2:on 3:on 4:on 5:on 6:off

    这样就完成了。

     

    引用文献:

    http://www.cnblogs.com/jimeper/archive/2013/03/12/2955687.html

    http://www.linuxidc.com/Linux/2015-01/111438.htm

     

  • 相关阅读:
    mongodb查询部分满足条件的列
    java属性文件读取,属性修改
    url中的jsessionid解释
    windows下mongodb设置用户名密码&用python连接
    Linux下Redis的安装和部署 详细
    Windows下手动安装redis服务
    Windows下安装Redis服务
    Python装饰器单例
    Django学习之全局变量
    Python3中 对local和nonlocal 关键字的改善认识(新手向)
  • 原文地址:https://www.cnblogs.com/fengbohello/p/4919925.html
走看看 - 开发者的网上家园