一、基础知识

有关linux系统开机过程、运行等级,执行权限请看另一篇:linux系统启动过程及运行等级详解

本篇文章实践的系统:centos6.5

二、创建服务

通过之前的说明,我们知道了如果需要创建一个服务,譬如mysql,需要先写一个控制脚本放在/etc/init.d目录下,

然后需要手动执行,比如,启动mysql服务

/etc/init.d/mysql start 或 service mysql start

如果想要Linux在运行级别为2或3启动时,自动执行mysql启动脚本怎么办呢?可以给需要自动运行的级别对应的rcX.d下做软链:

#cd /etc/rc.d/init.d &&
#ln -sf ../init.d/mysql ../rc2.d/K64mysql &&
#ln -sf ../init.d/mysql ../rc3.d/K64mysql

如果要让每个运行级别都启动自动运行mysql,那么就要重复创建6个(除等级0)软链,这很麻烦,还好linux提供了一个命令:chkconfig。它提供了一种简单的方式来设置一个服务的运行级别。

三、chkconfig

1. 功能说明

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了软链

2. 命令语法

chkconfig [--add][--del][--list][系统服务] 或

chkconfig [--level <等级代号>][系统服务]<on|off|reset>

--add  增加所指定的系统服务,让chkconfig得以管理它,并同时在系统启动的叙述文件内增加相关数据。
--del  删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
--level<等级代号>  指定读系统服务要在哪一个运行等级中开启或关毕。
--list 列出系统服务的情况


3. 常见用法

chkconfig --list [name]:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。

chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从默认的init脚本自动建立。

chkconfig --del name:删除服务,并把相关软链从/etc/rc[0-6].d删除。

chkconfig [--level levels] name <on|off|reset>:设置某一服务在指定的运行级是被启动,停止还是重置,on和off开关,系统默认只对运行级2,3,4,5有效,但是reset可以对所有运行级有效。

需要说明的是,level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

四、服务脚本的编写

每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。

第一行告诉chkconfig默认启动的运行级以及启动停止优先级。如果某服务默认不在任何运行级启动,那么使用 - 代替运行级。优先级也是用数字表示,数字越小,优先级越高。

第二行对服务进行描述,可以用\ 跨行注释。

例如,random.init包含三行:

# chkconfig:
# description: Saves and restores system entropy pool for \
# higher quality random number generation.

另外,脚本必须要编写成能够接受一个参数($1),而且$1至少需要提供start和stop两个参数。

五、总结

承上所述,在系统中增加一个服务并使其开机启动需要几个步骤:

1. 编写合符规范的服务脚本,使其可执行,并放在/etc/init.d目录下。

2. 在chkconfig工具服务列表中增加此服务

chkconfig --add servicename

3. 修改服务的默认启动等级

chkconfig --level  servicename on

六、实例

请查看:svnserve服务开机启动

七、参考

1. Linux启动顺序、运行级别及开机启动

2. Linux下chkconfig命令详解

3. linux chkconfig命令参数及用法详解--linux系统服务设置命令

4. chkconfig(8) - Linux man page

(完)

linux系统chkconfig使用方法及服务开机启动的更多相关文章

  1. linux开机启动服务和chkconfig使用方法(自定义服务路径启动)

    服务概述在linux操作系统下,经常需要创建一些服务,这些服务被做成shell脚本,这些服务需要在系统启动的时候自动启动,关闭的时候自动关闭.将 需要自动启动的脚本/etc/rc.d/init.d目录 ...

  2. linux系统设置服务开机启动3种方法,Linux开机启动程序详解

    linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图     方法2:利用命令行chkconfig命令进行设置 简要说明 ...

  3. CentOS设置服务开机启动的方法

    CentOS设置服务开机启动的两种方法 1.利用 chkconfig 来配置启动级别在CentOS或者RedHat其他系统下,如果是后面安装的服务,如httpd.mysqld.postfix等,安装后 ...

  4. 修改linux系统时间的方法(date命令)

    修改linux系统时间的方法(date命令) 来源:互联网 作者:佚名 时间:11-18 23:22:27 [大 中 小] date命令不仅可以显示系统当前时间,还可以用它来修改系统时间,下面简单的介 ...

  5. linux 下httpd服务开机启动

    分类: 网站搭建2011-01-07 05:52 1164人阅读 评论(0) 收藏 举报 linuxapache 我的apache安装目录在 /usr/local/apache 有2种方法可以设置开机 ...

  6. centos 6 与 centos 7 服务开机启动、关闭设置的方法

    简单说明下 centos 6 与 centos 7 服务开机启动.关闭设置的方法: centos 6 :使用chkconfig命令即可. 我们以apache服务为例: #chkconfig --add ...

  7. CentOS设置服务开机启动的两种方法

    一.通过服务的方式设置自启动 1.  在/etc/init.d 下建立相关程序的启动脚本 2.  chkconfig --add mysqld(添加服务到chkconfig列表中) chkconfig ...

  8. Ubuntu Linux系统三种方法添加本地软件库

    闲着没事教教大家以Ubuntu Linux系统三种方法添加本地软件库,ubuntu Linux使用本地软件包作为安装源——转2007-04-26 19:47新手重新系统的概率很高,每次重装系统后都要经 ...

  9. centos设置服务开机启动

    Linux CentOS设置服务开机启动的方法 by 天涯 · 2013/07/26 CentOS设置服务开机启动的两种方法 1.利用 chkconfig 来配置启动级别 在CentOS或者RedHa ...

随机推荐

  1. Linux环境安装配置Swftools

    系统:CentOS6.5的64位版本   这里有一位仁兄的几个错误处理办法,下面是swftools的安装配置步骤:   1.安装所需的库和组件.机器之前安装过了,主要安装的是下面几个组件.如果不安装会 ...

  2. 2.JMeter查看结果树返回编码格式Unicode转为中文方法

    在使用JMeter做接口测试时,发现相同url,用postman工具,其返回数据参数为中文,而用JMeter工具,其返回参数为Unicode,如下图所示 解决方法如下: 1.Jmeter在对应的请求上 ...

  3. Python中文报错问题

    异常信息:SyntaxError: Non-ASCII character '\xe6' in file D:/pythonlearning/HelloPython.py on line 8, but ...

  4. python下很帅气的爬虫包 - Beautiful Soup 示例

    先发一下官方文档地址.http://www.crummy.com/software/BeautifulSoup/bs4/doc/ 建议有时间可以看一下python包的文档. Beautiful Sou ...

  5. 解决win下无法ping通VM虚拟机CentOS系统的方法

    事情描述:公司迁新址,电脑带过去之后,用xshell连接vm的centos系统老是连接失败,然后考虑到公司迁新址这个情况,我首先怀疑是ip的问题,然后在vm中执行ifconfig找到centos的ip ...

  6. idea maven 打包 引用本地jar

    1将本地jar包导入到mvn本地库 mvn install:install-file -Dfile=/Users/liuqiang/Documents/gmpl/gmpl-server/lib/ali ...

  7. if __name__=="__main__": 这个结尾的理解

    print "别人应用我做为模块导入,就只看到我" if __name__=="__main__": print "自己文件执行就看到我输出" ...

  8. 【原】C++11并行计算 — 数组求和

    本文转载请注明出处 -- polobymulberry-博客园 0x00 - 前言 最近想优化ORB-SLAM2,准备使用并行计算来提高其中ORB特征提取的速度.之前对并行计算方面一窍不通.借此机会, ...

  9. Java程序中不通过hadoop jar的方式访问hdfs

      一般情况下,我们使用Java访问hadoop distributed file system(hdfs)使用hadoop的相应api,添加以下的pom.xml依赖(这里以hadoop2.2.0版本 ...

  10. select函数源码阅读

    fd_set结构体 #undef __NFDBITS /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ #define __N ...