创建SysV系统脚本(可指定运行级别自动启动)

/etc/rc.d/init.d  /etc/init.d

服务类脚本
    sysV  /etc/rc.d/init.d
        必须有的选项:
            start stop restart status

chkconfig
    脚本的前面必须有下面两行,如果没有 chkconfig命令检测不到此脚本

    # chkconfig: runlevels SS KK
    runlevels:
        当chkconfig命令来为此脚本在rc#.d目录创建链接时,runlevels表示默认创建为S*开头的链接,\n除此之外的级别默认创建为K*开头的链接;S后面的启动优先级为SS所表示的数字;K后面关闭优先次序为KK所表示的数字;
    # description: 用于简单说明此脚本的功能; \ 换行

chkconfig --list: 查看所有独立守护服务的启动设定

chkconfig --add service_name
chkconfig --del service_name
chkconfig --level runlevels service_name {on|off}

测试脚本 myservice.sh

#!/bin/bash 
# chkconifg: 2345 66 33
# description: Test Service
#
LOCKFILE=/var/lock/subsys/myservice  # 创建一个锁文件,用来判断脚本的状态

mystatus(){
    if [ -e LOCKFILE ]; then
        echo "running..."
    else
        echo "stopped..."
}

usage(){
    echo "`basename $0` {start|stop|restart|status}"
}

case $1 in
'start')
    touch /var/lock/subsys/myservice
    echo "starting..."
    ;;
'stop')
    rm -rf /var/lock/subsys/myservice
    echo "stopping..."
    ;;
'restart')
    echo "restarting..."
    ;;
'status')
    mystatus
    ;;
*)
    usage
    ;;
esac
把脚本加到系统脚本的目录中,并用chkconfig命令让其在指定的运行级别自动启动:
cp myservice.sh  /etc/rc.d/init.d/myservice
chkconfig --add myservice
chkconfig --list myservice  # 查看
chkconfig --level 24 myservice off  关闭myservice在24级别上自动启动

你可能感兴趣的:(sysv,系统脚本)