一、基础知识

有关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. luvcview,使用mplayer查看摄像头和luvcview保存YUV图像视频的播放(转)

    luvcview,使用mplayer查看摄像头和luvcview保存YUV图像视频的播放 在mplayer中查看摄像头,可使用如下命令:mplayer tv:// -tv driver=v4l2:in ...

  2. Python WebServer with MSSql

    今天尝试了一下在windows上用python来写web服务 我的环境是 win7(64位)+ python(2.7.11) 第一步需要安装pymssql 第二步需要安装tornado(web服务靠他 ...

  3. callback&&callback()

    如果存在回调函数就执行!这是利用了 JS &&符号的一个小技巧&& 符号在前面为假时就不会执行后面的语句了所以这个就相当于 if(callback){ callback ...

  4. 老齐python-基础4(元祖、字典、集合)

    1.元祖 元祖的特性结合了字符串和列表 元祖是用圆括号括起来的,其中的元素之间用逗号(英文半角)隔开.元祖中的元素是任意类型的python对象(包括以后自定义的对象) 元祖中的元素不可更改,所以修改列 ...

  5. Spring的常用下载地址

    第一种,简单粗暴直接 1 http://repo.springsource.org/libs-release-local/org/springframework/spring/3.2.4.RELEAS ...

  6. if、while中变量的作用域问题

    我们知道,函数.类会改变当前变量的作用域.if,while等分支循环结构会继承外部作用域,即外部变量对分支循环结构内部可见. 但是C语言不支持if,while等分支循环结构内部作用域对外可见,而PHP ...

  7. 【UVA】10391 Compound Words(STL map)

    题目 题目     分析 自认已经很简洁了,虽说牺牲了一些效率     代码 #include <bits/stdc++.h> using namespace std; set <s ...

  8. window下boost库

    1.下载boost开发库源码. 2.使用vs2008的命令行工具,进入到源码目录xxx/boost_1_58_0,命令行中运行bootstrap.bat,生成文件b2.exe,在命令行中执行b2.ex ...

  9. 利用docker 最新漏洞渗透--提取root 权限

    一.事出 近期乌云漏洞平台等科技新闻,爆出Docker虚拟化 端口漏洞,本着热爱开源,实践动手的精神,我也去尝试了下,漏洞严重性确实很高,可以拿到root 登陆账户. 二.还原 2.1 通过扫描,我们 ...

  10. 何用glmnet或lars包进行feature selection

    #datalibrary(lars)data(diabetes)attach(diabetes) #glmnetlibrary(glmnet)library(foreach)library(Matri ...