chkconfig命令

Linux下chkconfig命令详解

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

使用语法:
chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]

chkconfig在没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定了on,off或者reset,那么chkconfi 会改变指定服务的启动信息。on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on和off开关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效。

参数用法:
   --add  增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
   --del  删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
   --level<等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕。
      等级0表示:表示关机
      等级1表示:单用户模式
      等级2表示:无网络连接的多用户命令行模式
      等级3表示:有网络连接的多用户命令行模式
      等级4表示:不可用
      等级5表示:带图形界面的多用户模式
      等级6表示:重新启动
      需要说明的是,level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

    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:设置某一服务在指定的运行级是被启动,停止还是重置。

运行级文件:
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。第二行对服务进行描述,可以用\ 跨行注释。
例如,random.init包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \
# higher quality random number generation.

使用范例:
chkconfig --list        #列出所有的系统服务
chkconfig --add httpd        #增加httpd服务
chkconfig --del httpd        #删除httpd服务
chkconfig --level httpd 2345 on        #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态
chkconfig --list        #列出系统所有的服务启动情况
chkconfig --list mysqld        #列出mysqld服务设置情况
chkconfig --level 35 mysqld on        #设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭
chkconfig mysqld on        #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级

如何增加一个服务:
1.服务脚本必须存放在/etc/ini.d/目录下;
2.chkconfig --add servicename
    在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入口了;
3.chkconfig --level 35 mysqld on
    修改服务的默认启动等级。

 
 
redhat中的chkconfig
 

1. chkconfig是redhat中的服务配置工具

2. 要使不在chkconfig目录中的服务支持该命令,需要改该服务脚本的工具

  例如:/etc/init.d/sshd

  1.注释中必须有这两行 (chkconfig会查看所有注释行)

    # chkconfig: 2345 55 25       # description: SSH is a protocol for secure remote shell access. 描述文件

    1.chkconfig参数1:表示在运行级别2345中默认代开 使用-表示默认关闭

    2.chkconfig参数2:S55

    3.chkconfig参数3:K45

  2. 要在服务脚本中实现POSIX规范中的函数:start() stop()等

  3.这时可以使用 service xxxx(脚本名)  start/stop等命令立刻启动或关闭

3.要使该脚本每次启动都生效

  1.chkconfig --add xxxx注册服务名

    1.chkconfig会根据该脚本的信息,自动到相应运行级rcX.d中创建链接

  2.chkconfig xxxx off 配置系统启动时该脚本默认关闭

  3.chkconfig xxxx on 配置系统启动时该脚本默认启动

    

4.chkconfig中的特殊服务xinetd ,xinetd服务下挂载一系列服务 ,脚本放在/etc/xinetd.d/

  1.要启动xinetd挂在的服务

    1.chkconfig xinetd on

    2.chkconfig  xxx on

    3.service xxx start  

 

 

chkconfig命令

1.chkconfig是一个改变开机启动项的命令,修改/etc/rc[0-6].d文件夹下的内容

2.chkconfig命令有5种不同的作用:增加新的服务、删除服务、打印当前开启启动服务的信息、修改开启启动服务的信息、检查一个指定服务的状态

3.当chkconfig servicename时,它检查这个服务是不是在当前的runlevel下被开启启动,如果是,返回true,否则false。chkconfig --level= servicename检查服务是不是在指定的runlevel开机启动

4.当chkconfig --list时,或者完全没有参数即chkconfig时,会列出当前的服务和他们的配置

5.如果on、off、reset、resetpriorities参数之一被指定时(在服务名参数后面),chkconfig命名改变这个服务的开机配置。on/off使服务开机启动/停止。reset标志重置on/off不论在开机启动脚本中是什么样子的,resetpriorities也是,只是有优先级

6.默认,on/off命令支队runlevel为2,3,4,5的有影响,而reset和resetpriorities对所有runlevels都有影响。--level参数可以指定被影响的runlevel

7.对每个服务,每个runlevel都有1个start/stop脚本。当change runlevel时,init进程不会重启一个already-start的服务,也不会重新关闭一个already-stop的服务

 

 

 

chkconfig 检查和设置系统的各种服务。
语法:chkconfig [--add][--del][--list][系统服务] :增、删、查系统服务(/etc/【rc.d】/init.d/……)
       chkconfig [--level <等级代号>] [系统服务][on/off/reset]         :开启关闭重置系统服务
 --level<等级代号> 指定读系统服务要在哪一个执行等级中开启或关闭。 
 level
    abrt-ccpp       0:关闭  1:关闭  2:关闭  3:启用  4:关闭  5:启用  6:关闭
    abrt-oops       0:关闭  1:关闭  2:关闭  3:启用  4:关闭  5:启用  6:关闭
    abrtd           0:关闭  1:关闭  2:关闭  3:启用  4:关闭  5:启用  6:关闭
    等级0表示:表示关机
  等级1表示:单用户模式
  等级2表示:无网络连接的多用户命令行模式
  等级3表示:有网络连接的多用户命令行模式
  等级4表示:不可用
  等级5表示:带图形界面的多用户模式
  等级6表示:重新启动

chkconfig 没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。
如果是,返回true,否则返回false。
如果在服务名后面指定了on,off或者reset,那么chkconfi 会改变指定服务的启动信息。
on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。
on和off开关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效

    chkconfig svnserved on
    svnserved       0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
    chkconfig svnserved on
    svnserved       0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭

 


Linux下启动,停止apache服务

本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况   apahce启动命令:      /usr/local/apache2/bin/apachectl start apaceh启动 apache停止命令      /usr/local/apache2/bin/apachectl stop   停止 apache重新启动命令:      /usr/local/apache2/bin/apachectl restart 重启  要在重启 Apache 服务器时不中断当前的连接,则应运行: 

    /usr/local/sbin/apachectl graceful    如果apache安装成为linux的服务的话,可以用以下命令操作:      service httpd start 启动 

    service httpd restart 重新启动 

    service httpd stop 停止服务

当一个人找不到出路的时候,最好的办法就是将当前能做好的事情做到极致,做到无人能及。

 

chkconfig命令

chkconfig

功能说明:检查,设置系统的各种服务。

语  法:chkconfig

[--add][--del][--list][系统服务]或chkconfig[--level<等级代号>][系统服务][on/off/reset]

补充说明:这是RedHat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。

参  数:

 --add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。

 --del 删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。

 --level<等级代号> 指定读系统服务要在哪一个执行等级中开启或关毕

 

1:chkconfig 命令也可以用来激活和解除服务。chkconfig --list 命令显示系统服务列表,以及这些服务在运行级别0到6中已被启动(on)还是停止(off)。

chkconfig --list

chkconfig --list httpd

httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

2:chkconfig 还能用来设置某一服务在某一指定的运行级别内被启动还是被停运。譬如,要在运行级别3、4、5中停运 nscd 服务,使用下面的命令:

chkconfig --level 345 nscd off

3:由 xinetd 管理的服务会立即被 chkconfig 影响。譬如,如果 xinetd 在运行,finger 被禁用,那么执行了 chkconfig finger on 命令后,finger 就不必手工地重新启动 xinetd 来立即被启用。对其它服务的改变在使用 chkconfig 之后不会立即生效。必须使用service servicename  start/stop/restart命令来重起服务

 

]Linux中如何自动启动服务


linux自动启动服务很简单,最简单的是把启动命令放到/etc/rc.d/rc.local文件里。这样就可以每次启动的时候自动启动服务了。例如对于 apache,编译好apache后会在安装目录的bin下生成apachectl文件,这是个启动脚本,我们只需要把这个命令加到rc.local里就可以了:
echo /usr/local/apache/bin/apachectl >> /etc/rc.d/rc.local

此外我们还可以使用chkconfig命令来把某项服务加到系统的各项运行级别中,步骤如下:
1 创建启动脚本,对于apache、mysql、ssh这样的软件都是自己带的,我们只要稍微修改一下使之支持chkconfig就可以了
2 修改脚本
我们需要在脚本的前面加上2行,才能支持chkconfig命令
# chkconfig: 2345 08 92
# description: Automates a packet filtering firewall with ipchains.

chkconfig:后面定义的使启动服务的运行级别(例子中使2345启动该服务),以及关闭和启动服务的顺序(上例中启动服务的顺序是8,关闭的顺序是92)。
descriptions:对该服务的描述(上例中是ipchains包过滤),你可以换成自己想要的

修改好之后执行
cp 你的脚本 /etc/rc.d/init.d/脚本名
chmod 700 /etc/rc.d/init.d/脚本名
chkconfig --add 脚本名
以后每次重新启动服务器都会自动启动和关闭我们的服务了


而且你执行setup之后也可以看到我们添加的服务,选中我们添加的服务按F1键还可以看到我们定制的信息。 

附chkconfig命令:

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

语法:

    chkconfig --list [name]
    chkconfig --add name
    chkconfig --del name
    chkconfig [--level levels] name <on|off|reset>
    chkconfig [--level levels] name

    chkconfig 没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定 了on,off或者reset,那么chkconfi 会改变指定服务的启动信息。on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on和off开 关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效。

    --level选项可以指定要查看的运行级而不一定是当前运行级。

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

    chkconfig --list :显示所有运行级系统服务的运行状态信息(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>:设置某一服务在指定的运行级是被启动,停止还是重置。例如,要在3,4,5运行级停止nfs服务,则命令如下:
    chkconfig --level 345 nfs off


运行级文件:

    每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。第二行对服务进行描述,可以用\ 跨行注释。
例如,random.init包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \

# higher quality random number generation.
此例子表明random服务的缺省启动运行级在2、3、4、5级,启动的优先级(顺序号)是20,停止的优先级(顺序号)是80。

附加介绍一下Linux系统的运行级的概念:

    Linux中有多种运行级,常见的就是多用户的2,3,4,5 ,很多人知道5是运行X-Windows的级别,而0就是关机了。运行级的改变可以通过init命令来切换。例如,假设你要维护系统进入单用户状态,那么,可以使用init1来切换。在Linux的运行级的切换过程中,系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K和S开头的文件, 按后面的数字顺序,执行这些脚本。对这些脚本的维护,是很繁琐的一件事情,Linux提供了chkconfig命令用来更新和查询不同运行级上的系统服务 

 

 


Linux服务器常用启动服务的命令

 
amba是Linux下提供的类Windows下"网络邻居"的服务。一般只有启动的时候安装了才可以启用。不过大部分Linux在安装时就已经包含了这个软件包,在启动时自动启动了服务,不过我们也可以手动启动这个服务。

一般的Linux系统,服务一般配置在/etc/init.d或者/etc/rc.d/init.d文件夹下,国产RedFlag Linux干脆两个目录下都有对应的服务,只是/etc/init.d下面的配置成系统默认的。

PS:RedFlag Linux还兼容Dos命令,看来是不遗余力的纵容了用户的习惯。

下面是我在RedFlag Linux的两个服务目录下看到的(保留部分有代表性的):

$ ls /etc/init.d $ ls /etc/rc.d/init.d 说明
dhcpd dhcpd DHCP服务
httpd httpd WEB服务
ldap ldap 轻量级目录服务
mysqld mysqld Mysql数据库服务
proftpd proftpd FTP服务
sendmail sendmail 邮件服务
smb smb 网络文件服务
sshd sshd SSH服务

 

每个服务的启动:/etc/init.d/{服务名} start或者/etc/rc.d/init.d/{服务名} start 每个服务的停止:/etc/init.d/{服务名} stop或者/etc/rc.d/init.d/{服务名} stop 每个服务的重启:/etc/init.d/{服务名} restart或者/etc/rc.d/init.d/{服务名} restart

比如对samba服务进行操作(对应服务名smb):

每个服务的启动:/etc/init.d/smb start或者/etc/rc.d/init.d/smb start
每个服务的停止:/etc/init.d/smb stop或者/etc/rc.d/init.d/smb stop
每个服务的重启:/etc/init.d/smb restart或者/etc/rc.d/init.d/smb restart

 

 

linux开机启动服务的修改与查看 




首先了解linux的运行级别有哪些?
6个运行级别

        # 0 - 停机(千万不要把initdefault设置为0 ) 
    # 1 - 单用户模式 
    # 2 - 多用户,但是没有NFS 
    # 3 - 完全多用户模式 
    # 4 - 没有用到 
    # 5 - X11 
    # 6 - 重新启动(千万不要把initdefault设置为6 ) 
    # 对各个运行级的详细解释: 
    0 为停机,机器关闭。 
    1 为单用户模式,就像Win9x下的安全模式类似。 
    2 为多用户模式,但是没有NFS支持。 
    3 为完整的多用户模式,是标准的运行级。 
    4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。 
    5 就是X11,进到X Window系统了。 
    6 为重启,运行init 6机器就会重启。 
修改级别
vi /etc/inittab
把id:3:initdefault:中的3改为相应的级别



每次系统开机的时候,都会根据不同的runlevel级别启动不同的服务。
开机按[CTRL]+[ALT]+[F7]/[F8]可查看系统启动时正在启动的服务!!!!
  众所周知Linux给我们提供了7中不同的启动级别0~6,那么不同的启动级别都会启动那些服务哪。可以使用chkconfig ——list 查看,可以使用chkconfig 服务名 ——level 3 {on|of}修改是否要再某个级别启动或停止。
  1. 例如:要把sshd服务在第3种启动级别中停止。
[root@team4 rc3.d]# chkconfig sshd --level 3 off 中国网管联盟www.bitscn.com
  2. 还可以手工修改,在/etc/rc.d/这个目录里有很多不同runlevel对应的目录,里面表明进入某个启动级别时要启动和停止那些服务。
  例如: 中国网管联盟www、bitsCN、com
[root@team4 etc]# ls /etc/rc.d
init.d  rc0.d  rc2.d  rc4.d  rc6.d     rc.sysinit
rc      rc1.d  rc3.d  rc5.d  rc.local
我们用rc3.d这个目录为例,这个目录里面记录的是进入init 3时需要停止和启动那些服务。
下面为rc3.d目录的内容:
[root@team4 etc]# ls /etc/rc.d/rc3.d/
K02avahi-dnsconfd            K89pand             S25bluetooth
K02dhcdbd                    K89rdisc            S25netfs
K02NetworkManager            K91capi             S25pcscd
K02NetworkManagerDispatcher  K99readahead_later  S26apmd
K05conman                    S04readahead_early  S26hidd
  K开头代表这个启动级别需要停止的服务,编号是停止的时候执行的顺序,再后面就是服务明了。
  S开头则是要启动那些服务。 网管网bitsCN_com
  注意:先执行K开头的,后执行S开头的。所以S开头的服务会覆盖K开头的服务。
Linux设置程序的开机自启动与Linux服务
这里只说我所知道的,举例如下
需求是我要用Windows下的VNC Viewer连接到Linux Server. 我在Linux下面输入
#vncserver
设置好密码,好现在我就可以在Windows下面使用VNC连接到Linux桌面了,这个时候如果我的Linux Server系统重启了,那么我还得再敲一次vncserver这个命令,所以我现在要让Linux Server在开机时自动启动vncserver
有哪些方法呢?
1. 我可以把vncserver设置成系统的服务,并启动起来,使用如下命令查看vncserver是否已经是系统的服务
#chkconfig --list|grep vnc
vncserver    0:off 1:off 2:off 3:off 4:off 5:off 6:off
现在我们要设置vncserver开机自启动,使用如下命令
#chkconfig --level 5 vncserver on#chkconfig --list|grep vnc
vncserver    0:off 1:off 2:off 3:off 4:off 5:on 6:off
这个时候重启系统,那么vncserver就会以服务的方式自动起来,但是现在如果想立即使用vnc则直接敲命令 vncserver即可
2. 我们可以把vncserver这条命令写在Linux开机要运行的脚本里面,那些脚本是Linux开机时要执行的呢?
我知道的有以下这些:
/etc/rc.local
/etc/rc.sysinit
/etc/inittab
/etc/profile
这里记住Linux服务于Linux开机自启动之间的区别和联系。

 

 

RedHat Linux下注册Apache为系统服务并设为开机启动

1、系统环境:

操作系统:Red Hat Enterprise Linux Server release 5.4

Apache版本:httpd-2.2.19

2、注册服务

#将apachectl复制到init.d目录下

[root@bogon ~]# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd

#修改httpd

[root@bogon ~]# vi /etc/init.d/httpd

#找到#!/bin/sh,另起一行增加以下内容,并保存(:wq!)退出。

#chkconfig:345 85 15 

#description:Start and stop the Apache HTTP Server 

 

【说明】:在注册过程中增加#chkconfig:35 70 30,再通过chkconfig --add httpd注册服务时,报如下错误service httpd does not support chkconfig,修改为chkconfig: 2345 10 90即可正常注册。

#注册服务

[root@bogon init.d]# chkconfig --add httpd

[root@bogon init.d]# chkconfig httpd on

3、通过服务方式启动、停止Apache

#启动、重启、停止服务

启动服务:service httpd start

停止服务:service httpd stop

重新启动:service httpd restart

4、设为开机启动

在/etc/rc.d/rc.local中增加启动apache的命令,例如:/usr/local/apache2/bin/apachectl start

 

 

 

 

源码安装apache及配置转发 

一、    安装Apache 
 a)    解压:tar -xvf httpd-*; 
b)    ./configure --prefix=/usr/oracle/apache CC="gcc -m32" \--enable-proxy=shared --enable-proxy-http=shared --enable-proxy-ftp=shared --enable-proxy-connect=shared --enable-so --enable-modules=all --enable-mods-shared=all 
 c)    make 
 d)    make install 

基本的操作方法: 
 本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况 

apahce启动命令: 
 推荐/usr/local/apache2/bin/apachectl start apaceh启动 

apache停止命令 
/usr/local/apache2/bin/apachectl stop   停止 

apache重新启动命令: 
/usr/local/apache2/bin/apachectl restart 重启 

 要在重启 Apache 服务器时不中断当前的连接,则应运行: 

/usr/local/sbin/apachectl graceful 

如果apache安装成为linux的服务的话,可以用以下命令操作: 

service httpd start 启动 

service httpd restart 重新启动 

service httpd stop 停止服务 

 配置转发功能 

 打开apache安装目录的conf文件夹下的httpd.conf 

 1、将以下两行前的注释字符 # 去掉: 

#LoadModule proxy_module modules/mod_proxy.so 

 #LoadModule proxy_http_module modules/mod_proxy_http.so 

 2、在httpd.conf 文件的最后加上转发规则 

 例如: 

ProxyPass /cas http://192.168.0.206:9090/cas 

 ProxyPassReverse /cas  http://192.168.0.206:9090/cas 

将/cas开头的请求转发到206服务器9090端口的cas上 

 依次类推,其他的转发也是通过这种方式设置,如: 

ProxyPass /cas http://192.168.0.206:9090/cas 

 ProxyPassReverse /cas  http://192.168.0.206:9090/cas 

 #bbs不转发,采用apache处理 


ProxyPass /bbs ! 

ProxyPassReverse /bbs  ! 

 

posted @ 2014-07-15 21:46  Agoly  阅读(30931)  评论(0编辑  收藏  举报