zoukankan      html  css  js  c++  java
  • 通过修改Linux服务自动启动指定应用程序

    Linux中修改系统服务的命令是chkconfig (check config),命令的详细解释如下:
    chkconfig

    功能说明:检查,设置系统的各种服务。

    语  法:chkconfig [
    --add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]

    补充说明:这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。

    参  数:
     
    --add  增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。 
     
    --del  删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。 
     
    --level<等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕 


    首先来执行 chkconfig --list命令来查看所有已添加的系统服务(下面的结果只是一部分)

    [root@fd init.d]# chkconfig --list
    diskdump        0:off   1:off   2:off   3:off   4:off   5:off   6:off
    xfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
    rhnsd           0:off   1:off   2:off   3:on    4:on    5:on    6:off
    cups-config-daemon      0:off   1:off   2:off   3:on    4:on    5:on    6:off
    netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
    nfs             0:off   1:off   2:off   3:off   4:off   5:off   6:off
    microcode_ctl   0:off   1:off   2:on    3:on    4:on    5:on    6:off
    netplugd        0:off   1:off   2:off   3:off   4:off   5:off   6:off
    netdump         0:off   1:off   2:off   3:off   4:off   5:off   6:off
    cpuspeed        0:off   1:on    2:on    3:on    4:on    5:on    6:off
    syslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off
    smb             0:off   1:off   2:off   3:off   4:off   5:off   6:off
    ntpd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
    rawdevices      0:off   1:off   2:off   3:on    4:on    5:on    6:off
    psacct          0:off   1:off   2:off   3:off   4:off   5:off   6:off
    vncserver       0:off   1:off   2:off   3:off   4:off   5:off   6:off
    saslauthd       0:off   1:off   2:off   3:off   4:off   5:off   6:off
    dc_server       0:off   1:off   2:off   3:off   4:off   5:off   6:off
    mdmonitor       0:off   1:off   2:on    3:on    4:on    5:on    6:off
    httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
    ibmasm          0:off   1:off   2:off   3:off   4:off   5:off   6:off
    dc_client       0:off   1:off   2:off   3:off   4:off   5:off   6:off


    其中第一列表示服务名,后面的0-6表示在这六种启动方式中该服务是启动(on)还是关闭(off)
    比如默认情况下,自动检测新硬件的服务是启动的(服务名是kudzu),每次启动需要检测一段时间,我们可以关闭服务,以后有了硬件改动在调用它。
    chkconfig kudzu off

    chkconfig --list kudzu
    kudzu           0:off   1:off   2:off   3:off   4:off   5:off   6:off
    可以看到检测新硬件的服务都被关闭了,再次启动时就不会检测新硬件了。如果有了硬件改动你可以选择将此服务打开(chkconfig kudzu on),其实有更简单的方法,输入
    service kudzu start
    手动启动检测新硬件服务就可以了。这些服务都存放在/etc/init.d目录下,他们都是可执行的shell文件,比如刚才用的检测新硬件服务
    [root@fd /]# ls -l /etc/init.d/kudzu
    -rwxr-xr-x  1 root root 2095 Aug 23  2005 /etc/init.d/kudzu
    其实我们编写的shell文件也可以放在这里,然后添加成系统服务,但是我们必须遵守一个简单的预定。我们先来看看kudzu的具体内容吧
    根据这个模式编写一个简单的启动tomcat的服务脚本,vi /etc/init.d/tomcat,内容如下

    [root@fd /]# cat /etc/init.d/kudzu
    #!/bin/bash
    #
    # kudzu         This scripts runs the kudzu hardware probe.
    #
    # chkconfig: 345 05 95
    # description:  This runs the hardware probe, and optionally configures \
    #               changed hardware.

    # This is an interactive program, we need the current locale
    具体内容省略


     

    # chkconfig: 2345 20 80
    # description: simple example to start tomcat

    export JAVA_HOME=/usr/java/jdk1.5.0_16
    export CLASS_PATH=/usr/java/jdk1.5.0_16/lib
    export PATH=$JAVA_HOME/bin:$PATH
    /usr/Tomcat/bin/startup.sh

    将tomcat添加到服务中
    chkconfig --add tomcat
    状态设为启动
    chkconfig tomcat on

            在tomcat文件的头几行的注释语句中,必须包含chkconfig和description两部分内容,否则在执行“chkconfig --add tomcat”时,会出现“tomcat服务不支持chkconfig”的错误提示。chkconfig这行表示缺省启动的运行级别以及启动和停止的优先级,如该服务缺省不再任何运行级启动,则以 - 代替运行级别。在tomcat中表示脚本在运行级2、3、4、5启动,启动优先权为20(优先权数越大服务启动的越晚),停止优先权为80。如果服务已经设置好了,那么通过编辑tomcat文件来修改启动优先权就不管用了,先删除服务再添加进来就可以了。
            我模仿检测新硬件服务的内容编写一个较为复杂的tomcat服务,在系统启动时启动tomcat,在系统关闭时关闭tomcat。内容如下

    # chkconfig: 2345 30 70 
    # description: Starts and Stops Tomcat.

    export JAVA_HOME=/usr/java/jdk1.5.0_16
    export CLASS_PATH=/usr/java/jdk1.5.0_16/lib
    export PATH=$JAVA_HOME/bin:$PATH

    case "$1" in
     start)
     /usr/Tomcat/bin/startup.sh
     touch /var/lock/subsys/tomcat
     ;;
     status)
            if [ -f /var/lock/subsys/tomcat ]; then
              echo $"tomcat is running"
              exit 0
            fi
            echo $"tomcat has stopped"
            exit 3
            ;;
     stop)
     /usr/Tomcat/bin/shutdown.sh
     rm -f /var/lock/subsys/tomcat
     ;;
     restart)
     /usr/Tomcat/bin/shutdown.sh
    /usr/Tomcat/bin/startup.sh
    ;;
    *) 
    echo "Usage: tomcat {start|stop|restart|status}" 
    exit 1 
    esac 
    exit 0
  • 相关阅读:
    【Redis】跳跃表原理分析与基本代码实现(java)
    小鹤音形指引
    Maven
    算法思维(长期更)
    多路平衡树之红黑树
    多路平衡树之B树
    多路平衡树之2-3查找树
    栈与队列
    树基本概念
    Vue学习
  • 原文地址:https://www.cnblogs.com/interboy/p/1251745.html
Copyright © 2011-2022 走看看