linux的chkconfig服务注册(服务注册脚本说明)

linux上一些服务的重启以及随系统启动而启动,可以像windows那样注册为服务通过chkconfig 进行操作。在注册chkconfig时需要在linux的/etc/init.d/目录下有对应的启动脚本。

一、注册服务脚本说明

1、/etc/init.d/目录下的脚本名称就是服务注册时使用的服务名。

2、在服务脚本中一般包括start/stop/restart/status/condrestart/reload几种操作

start:启动服务

stop:停止服务

status:查看服务状态

condrestart::类似restart,但是只有在服务存在时才会执行重启

restart:重启服务,在服务进程不存在时直接提到服务

reload:不进行重启,对服务的配置文件重新读取加载

3、标准服务注册脚本模板(使用keepalived的注册脚本):

#!/bin/sh
#
# Startup script for the Keepalived daemon
#
# processname: keepalived
# pidfile: /var/run/keepalived.pid
# config: /etc/keepalived/keepalived.conf
# chkconfig: - 21 79 #此处必须有,是chkconfig服务注册到linux启动级别的配置
# description: Start and stop Keepalived

# Source function library
. /etc/rc.d/init.d/functions #加载脚本使用到的函数例如status、killproc

# Source configuration file (we set KEEPALIVED_OPTIONS there)
. /etc/sysconfig/keepalived #服务的配置文件

RETVAL=0 #状态码

prog="keepalived" #服务的进程文件名,进程号文件名keepalived.pid

start() {
    echo -n $"Starting $prog: "
    daemon keepalived ${KEEPALIVED_OPTIONS}
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog #锁定进程,后面查找进程是否存在通过此文件
}

stop() {
    echo -n $"Stopping $prog: "
    killproc keepalived #默认到/var/lock/subsys/、/var/run目录下查找对应的文件和pid 然后kill
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog #删除进程锁定文件
}

reload() {
    echo -n $"Reloading $prog: "
    killproc keepalived -1 #查找配置文件并重新加载
    RETVAL=$?
    echo
}

# See how we were called.
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    reload)
        reload
        ;;
    restart)
        stop
        start
        ;;
    condrestart)
        if [ -f /var/lock/subsys/$prog ]; then
            stop
            start
        fi
        ;;
    status)
        status keepalived
        ;;
    *)
        echo "Usage: $0 {start|stop|reload|restart|condrestart|status}"
        exit 1
esac

exit $RETVAL

4、非标准注册脚本(使用haproxy注册脚本)

#!/bin/sh
#
# Startup script for the Haproxy daemon
#
# processname: haproxy
# description: Start and stop haproxy
# chkconfig: - 21 79 #同上必写
. /etc/rc.d/init.d/functions

basedir=/usr/local/sbin #服务启动脚本目录
confdir=/etc/haproxy #配置文件目录
start() {
 echo "START HAPROXY SERVERS"
 ${basedir}/haproxy -f ${confdir}/haproxy.cfg  #执行启动命令
}
stop() {
 echo "STOP HAPORXY lISTEN"
 kill -TTOU $(cat /usr/local/logs/haproxy.pid) #停止提供服务
 echo "STOP HAPROXY PROCESS"
 kill -usr1 $(cat /usr/local/logs/haproxy.pid) #杀死进程
}
# See how we were called.
case "$1" in
    start)
        start
 error=$?
        ;;
    stop)
        stop
 error=$?
        ;;
    restart)
        stop
        start
 error=$?
        ;;
    status)
 status -p /usr/local/logs/haproxy.pid #检查服务状态,根据进程号文件判断
 error=$?
 ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
esac
exit $error

5、注册脚本编写体会:

chkconfig服务是系统自动到/etc/init.d目录下根据传递的服务名查找到对应的文件,然后文件执行传递的操作命令(start、stop)。服务脚本是根据服务的启动脚本、查看进程来进行启动服务和查看服务状态,以及执行kill命令来停服务。

标准的服务服务在启动时会把启动后的进程号记录到/var/run的目录下,在/var/subsys/目录下锁定服务。因此可以根据keepalived的脚本来写注册服务。当服务进程号文件目录是非标准的,此时按照keepavived的脚本写命令会报错,需要根据服务的具体配置来写脚本找到进程号进行停,或执行服务的启动脚本执行start。

二、chkconfig命令常用操作:

chkconfig --add  服务名#注册服务

chkconfig --del  服务名#删除服务

chkconfig  --list 服务名# 查看服务启动的级别

chkconfig --level 2,3  服务名 on|off开启或关闭在某个级别的服务

service 服务名 start|stop|restart #对服务进行操作

原文地址:http://blog.51cto.com/sf1314/2112860

时间: 2024-10-08 13:37:38

linux的chkconfig服务注册(服务注册脚本说明)的相关文章

Linux(Debian) 上安装tomcat并注册服务开机自启动

1.准备工作 a.下载tomcat linux的包,地址:http://tomcat.apache.org/download-80.cgi,我们下载的版本是8.0,下载方式如图:        b.因为tomcat的安装依赖于Java jdk,所以我们需要在判断linux系统下面是否安装jdk b.1 使用(Xshell)连接到Linux系统下面 b.2 输入命令:java -version,如果显示jdk版本号,则证明已经安装,如果不显示,则证明没有安装,如果没有安装,请参考下面地址进行安装:

(二)Redis的安装及配置(3)---注册服务与自动启动

注册服务 所谓注册服务就是把一个程序变成Linux的系统服务,在指定运行级别上赋予关闭和启动的入口. 默认情况下redis不支持服务注册,会报错. 在拷贝到/etc/rc.d/init.d/中的redis脚本中修改如下(之前已经拷贝过去):加入chkconfig:2345 90 10.2345是运行级别,就是告诉chkconfig程序,需要在rc2.d.rc3.d.rc4.d和rc5.d目录下创建为S90redis的文件链接,链接到/etc/rc.d/init.d目录下的redis脚本.第一个字

docker深入2-基于 swarm mode 的服务发现和注册

2017/9/4 注:[未完待续]标签,表明现在没空继续研究,后续再补上,现在先分享出来,或许有朋友正需要思路和帮助. 一.前言 1.目的 1)研究基于 swarm mode 的服务发现和注册 2)熟悉使用 go 和 python 来写 agent 调用 docker api/sdk 来达到上述目的. 3)docker api/sdk 参考  * docker api and sdk exp  * api ref: https://docs.docker.com/engine/api/v1.3

oracle 共享服务连接静态注册服务

默认oracle的共享服务是注册到动态注册服务里面的 [email protected]> select * from v$version where rownum=1; BANNER -------------------------------------------------------------------------------------------------------------------------------------------------------------

聊聊微服务的服务注册与发现

摘要: 一个好的服务注册发现中间件,应该是能完整地满足服务开发和治理的基础功能,然后才是性能和高可用.如果没有想清楚前面的功能,再高的可用性和性能都是浮云.最后,安全也同样重要.下面将从 服务注册.服务发现.容灾和高可用三个大方面来回答这些问题的主流做法. 引言 聊起微服务的服务注册与发现,很多人立马就会脱口而出 zk.etcd.consul.eureka 这些组件,进而聊到 CAP 如何取舍,性能如何,高可用和容灾是怎么实现的. 在这之前,站在组件使用者的角度,我想先问这么几个问题: 注册的

Linux下chkconfig命令详解即添加服务以及两种方式启动关闭系统服务

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 一.chkconfig 的使用语法 1.chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <levels等级代号>][系统服务][on/off/reset] 2.参数用法: --add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文

datasnap——动态注册服务类

datasnap——动态注册服务类 在DataSnap的应用程序时,我们首先需要注册的服务器类,以提供访问客户端应用程序的服务器方法.通常的做法是使用DSServerClass组件,但有些时候,我们要做到在运行时加载.下面代码实现的类TSimpleServerClass从TDSServerClass继承,超载了Create方法并且增加了ServerClass,DataSnap Server和LifeCycle三个参数. type TSimpleServerClass = class(TDSSer

mysql+Apache+php环境配置中安装Apache,注册服务出现“(OS 5)拒绝访问的解决方法

安装Apache,注册服务出现“(OS 5)拒绝访问的解决方法     windows安装Apache,注册服务出现“(OS 5)拒绝访问. : AH00369: Failed to open the WinNT service manager..."错误 其实很简单,只要在C:\Windows\SysWOW64目录下找到CMD.EXE文件,在这个文件上右键以管理员身份运行即可 然后再次httpd.exe -k install 安装apache服务就成功了

初见微服务之服务注册与发现

什么是服务注册与发现 微服务将传统的"巨石"应用拆分成一个一个的组件应用,每个组件应用提供特定的服务,可以是一个,也可以是多个,并且组件所含服务应该是可以动态扩展的,随着时间推移.系统进化,可任意拆分.合并. 组件化应用和颗粒化的服务,遍布在系统的各个角落,由不同的项目成员进行维护,微服务的核心是化整为零.各司其职,这就要求开发人员不得操作其业务或服务范围以外的数据模型等资源,只能通过接口的访问,使用某一服务. 由于服务的跨度很大(公司很大的情况下).数量很多(数以百计甚至更多),为保