linux系统chkconfig使用方法及服务开机启动
一、基础知识
有关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服务开机启动
七、参考
3. linux chkconfig命令参数及用法详解--linux系统服务设置命令
4. chkconfig(8) - Linux man page
(完)
linux系统chkconfig使用方法及服务开机启动的更多相关文章
- linux开机启动服务和chkconfig使用方法(自定义服务路径启动)
服务概述在linux操作系统下,经常需要创建一些服务,这些服务被做成shell脚本,这些服务需要在系统启动的时候自动启动,关闭的时候自动关闭.将 需要自动启动的脚本/etc/rc.d/init.d目录 ...
- linux系统设置服务开机启动3种方法,Linux开机启动程序详解
linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图 方法2:利用命令行chkconfig命令进行设置 简要说明 ...
- CentOS设置服务开机启动的方法
CentOS设置服务开机启动的两种方法 1.利用 chkconfig 来配置启动级别在CentOS或者RedHat其他系统下,如果是后面安装的服务,如httpd.mysqld.postfix等,安装后 ...
- 修改linux系统时间的方法(date命令)
修改linux系统时间的方法(date命令) 来源:互联网 作者:佚名 时间:11-18 23:22:27 [大 中 小] date命令不仅可以显示系统当前时间,还可以用它来修改系统时间,下面简单的介 ...
- linux 下httpd服务开机启动
分类: 网站搭建2011-01-07 05:52 1164人阅读 评论(0) 收藏 举报 linuxapache 我的apache安装目录在 /usr/local/apache 有2种方法可以设置开机 ...
- centos 6 与 centos 7 服务开机启动、关闭设置的方法
简单说明下 centos 6 与 centos 7 服务开机启动.关闭设置的方法: centos 6 :使用chkconfig命令即可. 我们以apache服务为例: #chkconfig --add ...
- CentOS设置服务开机启动的两种方法
一.通过服务的方式设置自启动 1. 在/etc/init.d 下建立相关程序的启动脚本 2. chkconfig --add mysqld(添加服务到chkconfig列表中) chkconfig ...
- Ubuntu Linux系统三种方法添加本地软件库
闲着没事教教大家以Ubuntu Linux系统三种方法添加本地软件库,ubuntu Linux使用本地软件包作为安装源——转2007-04-26 19:47新手重新系统的概率很高,每次重装系统后都要经 ...
- centos设置服务开机启动
Linux CentOS设置服务开机启动的方法 by 天涯 · 2013/07/26 CentOS设置服务开机启动的两种方法 1.利用 chkconfig 来配置启动级别 在CentOS或者RedHa ...
随机推荐
- np.random的随机数函数
np.random的随机数函数(1) 函数 说明 rand(d0,d1,..,dn) 根据d0‐dn创建随机数数组,浮点数, [0,1),均匀分布 randn(d0,d1,..,dn) 根据d0‐dn ...
- (转)Android自定义属性时format选项( <attr format="reference" name="background" /> )
Android自定义属性时format选项可以取用的值 1. reference:参考某一资源ID. (1)属性定义: [html] view plaincopyprint? <declar ...
- Java API 操作 Mongodb
本次测试环境使用一台ip为 192.168.2.23 的虚拟机 一.依赖 <dependency> <groupId>org.mongodb</groupId> & ...
- c++ 异常处理(3)
<C++编码规范与指导>一文,就已经规划着要加入这样一篇讨论 C++ 异常机制的文章了.没想到时隔几年以后才有机会把这个尾巴补完 :-). 还是那句开场白:“在恰当的场合使用恰当的特性” ...
- "废物利用"也抄袭——废旧喷墨打印机和光驱DIY"绘图仪"
很长时间没有写博客,因为各种各样的事情占去大块时间,只有零碎时间偶尔在CSDN逛逛也偶尔回几个帖子.很久以前就看到一些光驱DIY雕刻机之类的,很是向往,最近这几天得闲就TB了一套Arduino UNO ...
- .NET System.Web.HttpContext.Current.Request报索引超出数组界限。
移动端使用Dio发送 FormData, 请求类型 multipart/form-data, FormData内可以一个或多个包含文件时. 请求接口时获取上传的fomdata数据使用 System.W ...
- 局域网使用NAT进行测试第三方接口
问题分析 在局域网内开发一些涉及到第三方的接口调用功能时(譬如:支付),需要对方服务器进行接口回调,接受对方发送过来的信息.问题来了,我们一般开发都是在内网,如何才能获取到外网返回的数据呢?如 ...
- 运维平台cmdb开发-day2
一 发送数据到api(Django的URL) 发送请求携带参数 requests.get(url='http://127.0.0.1:8000/api/asset/?k1=123') # <Qu ...
- python学习(二十七) 元组
# 元组是不可变的,不能改变元素的值,也不能增加.减少元素my_tuple = (1, 2, 3, 3)print(my_tuple) # 查找元素位置print(my_tuple.index(2)) ...
- Change R source code
If you'd like to simply test out the effect of that change in an interactive R session, you can do s ...