您的位置:首页 > 其它

编写一个服务脚本的示例

2016-09-11 19:25 267 查看
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/下对应服务脚本。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  服务脚本