首页  |  Linux  |  C/C++  |  网络编程  |  Python   |  Algorithm  |  数据库  |  经验  |   人生 & 随想   |  站内搜索  |  关于

<<< previous

该文已被浏览1441

如何在CentOS 6中管理服务?



基于Red Hat的Linux发行版(如CentOS)中有两个可以管理服务的工具: servicechkconfig

service可以在系统运行的过程中控制服务的启动、停止,以及获取服务的当前状态。

chkconfig可以控制在不同的Runlevel下,管理服务是否在操作系统启动的时候自动启动, 以及获取服务的当前状态。

每当你在Red Hat, FedoraCentOS中安装一项服务(如nginx,vsftpd等),安装完成后,这些服务都不会自动启动,同样,在系统重启时,这些服务仍然不会自动启动,想要在系统运行过程中启动、停止一项服务,你需要使用service, 而如果想要在系统启动时自动启动一项服务,你需要使用chkconfig, 下面将介绍这两个工具的用法。

注意: 本文中的命令都在CentOS 6中执行并测试通过, 并且命令的执行都需要root权限。

service

service可以在系统运行的过程中控制服务的启动、停止,以及获取服务的当前状态, 其基本用法如下:

service [ServiceName] [start|stop|status|...]

其中,ServiceName 表示要操作的服务的名称, start, stop, status 表示要对指定服务进行的具体操作。

下面将使用 vsftpd 服务作为例子来展示 service 的用法。

  1. 获取指定服务所有可进行的操作

    通常,对一项服务可进行的操作都包含 start, stop, status 这三个操作,一些服务还提供了一些其它的操作,要获取所有可用的操作,可以使用如下命令:

    # service [ServiceName]
    

    例如要获取 vsftpd 服务所有可用的操作,可以执行如下命令:

    # service vsftpd
    
  2. 启动服务
    启动服务可以执行下面的命令:

    # service [ServiceName] start
    

    启动 vsftpd 服务的命令如下:

    # service vsftpd start
    
  3. 停止服务
    停止服务需要执行下面的命令:

    # service [ServiceName] stop
    

    停止 vsftpd 服务的命令如下:

    # service vsftpd stop
    
  4. 获取服务的当前状态
    要获取一项服务的当前状态,需要执行如下命令:

    # service [ServiceName] status
    

    获取 vsftpd 服务的当前状态的命令如下:

    # service vsftpd status
    

你可以在终端执行 man service 命令来获取更多关于 service 用法的信息。

chkconfig

虽然你可以使用 service 来启动一项服务,但是系统在重启之后,你之前启动的服务仍然不会启动,因此,在每次系统重启后,你都需要重新使用 service 命令来启动你想要启动的服务,如果你不想要做这样重复的工作,这时候就是 chkconfig 的用武之地了, chkconfig可以控制在不同的Runlevel下,管理服务是否在操作系统启动的时候自动启动。

首先,你可以执行如下命令来查看 chkconfig 所管理的所有服务及其状态:

# chkconfig

# chkconfig --list

执行上面的命令后,会输出类似下面的内容:

crond           0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭
htcacheclean    0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭
httpd           0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭
sshd            0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
...

输出结果中,第一列表示 chkconfig 所管理的服务名称,之后的7列中的数字表示不同的Runlevel, Runlevel 后面跟的 关闭启用 表示对应服务在该 Runlevel 下,是否在系统启动时自动启动,关闭 表示不自动启动服务,启用 表示自动启动服务。

以上面输出中的 sshd 服务为例,该服务在 2,3,4,5 Runlevel下,在系统启动时自动启动服务,而在其它Runlevel下,在系统启动时不自动启动服务。

httpd 服务为例,假如现在想要在 3,5 Runlevel下,在系统启动时自动启动 httpd 服务,则可以执行如下命令:

# chkconfig --level 35 httpd on

而如果想要在 4,5 Runlevel下,在系统启动时不自动启动 sshd 服务,则可以执行下面的命令:

# chkconfig --level 45 sshd off

关于 chkconfig 的其它用法,你可以在终端执行 man chkconfig 来查看。

结束语

本文介绍了在CentOS 6中管理服务的两个工具 —— servicechkconfigservice 可以在系统运行过程中对服务进行管理,而 chkconfig 则管理服务在系统启动阶段是否自启动,恰当地使用这两个工具,可以使我们能够更好地掌控系统中的服务,并减少重复性的工作。



一如既往,如果你对文章中的内容有任何疑问,或者是发现文章中有任何错误,都可以通过下面的地址发邮件告诉我.
E-mail: contact@TechForGeek.info