1、编写一个脚本

[root@lomain tmp]# vim test.sh 
case $1 in
start)
  echo "start.."
  ;;
stop)
  echo "stop.." 
  ;;
status)
  echo "status.."
  ;;
*)
  echo "Usage {start|stop|status}"
  ;;
esac
[root@lomain tmp]# chmod +x test.sh    //赋予执行权限

2、将脚本移动至/etc/rc.d/init.d/

[root@lomain tmp]# mv test.sh /etc/rc.d/init.d/
[root@lomain init.d]# mv test.sh test  //更改脚本名字

3、正常启动服务,但不能使用chkconfig命令

[root@lomain init.d]# service test start
start..

4、将脚本加入服务列表

[root@lomain init.d]# vim test    //在脚本中添加如下行
#!/bin/bash
#chkconfig:2345 80 28
#description:Test server scripts
[root@lomain init.d]# chkconfig --add test    //加入服务列表
[root@lomain init.d]# chkconfig --list test   //查看
test           	0:off	1:off	2:on	3:on	4:on	5:on	6:off

5、将脚本从服务列表中移除

[root@lomain init.d]# chkconfig --del test 
        //再使用chkconfig --list将不会在服务列表中看到test

注:也可以使用chkconfig --level # test off改变脚本对应启动级别的状态

查看运行级别的命令

  who -r

  runlevel

完成。


在/etc/rc.d/rc#.d下,都有一系列的服务脚本

[root@centos6 rc3.d]# ls
K01smartd          K50kdump       K84wpa_supplicant  S01sysstat       S13irqbalance        S25netfs      S82abrt-ccpp
K02oddjobd         K60nfs         K87restorecond     S02lvm2-monitor  S13rpcbind           S26acpid      S82abrtd
K05wdaemon         K61nfs-rdma    K88sssd            S08ip6tables     S15mdmonitor         S26haldaemon  S90crond
K10psacct          K69rpcsvcgssd  K89netconsole      S08iptables      S22messagebus        S26udev-post  S95atd
K10saslauthd       K73winbind     K89rdisc           S10network       S23NetworkManager    S28autofs     S99certmonger
K15htcacheclean    K74ntpd        K92pppoe-server    S11auditd        S24nfslock           S50bluetooth  S99local
K15httpd           K75ntpdate     K95firstboot       S11portreserve   S24rpcgssd           S55sshd
K30spice-vdagentd  K75quota_nld   K95rdma            S12rsyslog       S25blk-availability  S80postfix
K50dnsmasq         K76ypbind      K99rngd            S13cpuspeed      S25cups              S80test

再次验证test服务脚本的启动级别

[root@centos6 rc.d]# find -name "*test*"
./rc5.d/S80test
./rc2.d/S80test
./rc3.d/S80test
./init.d/test
./rc1.d/K28test
./rc4.d/S80test
./rc0.d/K28test
./rc6.d/K28test    //2345级别下80的优先级启动,016级别下20的优先级关闭
                   //数字越小,越先关闭或者启动





补充:也可以使用ntsysv查看或修改服务,*表示再当前的运行级别下启动。

wKioL1fVP-KhsYbKAACw7UTdgRM768.jpg

注:也可以使用ntsysv --level #切换级别来改变脚本对应启动级别的状态


备注:不管是使用chkconfig或者ntsysv一次只能改变一个运行级别,若要修改多个级别,可修改/etc/rc.d/init.d/下对应服务脚本。