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查看或修改服务,*表示再当前的运行级别下启动。
注:也可以使用ntsysv --level #切换级别来改变脚本对应启动级别的状态
备注:不管是使用chkconfig或者ntsysv一次只能改变一个运行级别,若要修改多个级别,可修改/etc/rc.d/init.d/下对应服务脚本。