说明:
有个监控代理软件的控制脚本需要配置为系统服务使其开机登录前自动启动,这里记录下配置方法。
本文适用于centos7及rhel7以下版本系统使用。
1、首先创建控制程序的脚本
为了方便演示,将启动和停止函数中代码修改为了对应的echo命令输出信息;使用时替换掉StartAgent()和StopAgent()函数内代码即可!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
[root@imzcy ~]# cat imzcy.sh #!/bin/bash # chkconfig: 2345 79 80 # description: Starts and stops uavagent. # author: zcy # site: https://www.imzcy.cn ### BEGIN My Functions StartAgent(){ sleep 2 echo "start script..." } StopAgent(){ sleep 2 echo "stop script..." } ### END My Functions case $1 in start) StartAgent ;; stop) StopAgent ;; restart) StopAgent StartAgent ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac [root@imzcy ~]# |
2、测试脚本是否能正常执行并且是否达到预期效果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[root@imzcy ~]# chmod u+x imzcy.sh [root@imzcy ~]# ./imzcy.sh start start script... [root@imzcy ~]# [root@imzcy ~]# ./imzcy.sh stop stop script... [root@imzcy ~]# [root@imzcy ~]# ./imzcy.sh restart stop script... start script... [root@imzcy ~]# [root@imzcy ~]# ./imzcy.sh test Usage: ./imzcy.sh {start|stop|restart} [root@imzcy ~]# |
3、使用 chkconfig
命令将脚本添加为系统服务,并测试启动和停止服务
1 2 3 4 5 6 7 8 9 10 |
[root@imzcy ~]# cp imzcy.sh /etc/init.d/imzcy [root@imzcy ~]# chmod 755 /etc/init.d/imzcy [root@imzcy ~]# chkconfig --add imzcy [root@imzcy ~]# service imzcy start start script... [root@imzcy ~]# service imzcy stop stop script... [root@imzcy ~]# |
4、常见问题
4.1、将脚本添加为服务时报错:服务不支持 chkconfig
1 2 3 |
[root@imzcy ~]# chkconfig --add imzcy imzcy 服务不支持 chkconfig [root@imzcy ~]# |
解决方法:
出现上面那个报错,一般是/etc/init.d/下自定义的脚本中没有指明运行级别及启动、停止优先级。请尽量在脚本文件的第二行指明以下配置,以免遗漏。
1 |
# chkconfig: 2345 79 80 |