zoukankan      html  css  js  c++  java
  • 使用chkconfig来管理Linux的服务

          chkconfig 用得最多的估计是在装完Linux后关闭一大堆无用的服务,特别是sendmail,我们还可以用chkconfig这个命令来管理Linux的服务,在此之前先复习一下Linux的运行级别,Linux一般会有7个运行级别:

    0 - 停机
    1 - 单用户模式
    2 - 多用户,但是没有NFS ,不能使用网络
    3 - 完全多用户模式,我最喜欢的模式
    4 - “打酱油” 模式,没有用到
    5 - X11
    6 - 重新启动 (如果将默认启动模式设置为6,Linux将会不断重启)

          0和7属于临时运行级别不应设置为默认,默认的运行级别在 /etc/inittab 中设置。

          言归正传,chkconfig可以为我们定制服务,以TSM为例,安装好TSM的Server后,在目录/opt/tivoli/tsm/server/bin中可以找到一个文件dsmserv.rc,将其ln到/etc/init.d这个目录中,最后改改名字,让它开起来更像一个服务的名字:

    [root@FWDB init.d]$ pwd
    /etc/rc.d/init.d
    [root@FWDB init.d]$ ln -s /opt/tivoli/tsm/server/bin/dsmserv.rc ./dsmserv 
    [root@FWDB init.d]$ ll *dsm*
    lrwxrwxrwx 1 root root 37 Nov  8 10:43 dsmserv -> /opt/tivoli/tsm/server/bin/dsmserv.rc

          此时可以观察一下我们熟悉的/etc/rcX.d,X是指不同运行级别:

    [root@FWDB init.d]$ ls /etc/rc3.d/*dsm*
    /etc/rc3.d/K10dsmserv
    [root@FWDB init.d]$ ls /etc/rc5.d/*dsm* 
    /etc/rc5.d/K10dsmserv

          我们可以像管理普通的服务那样控制TSM的随机启动和关闭了:

    [root@FWDB init.d]$ chkconfig --level 3  dsmserv on  
    [root@FWDB init.d]$ ls /etc/rc3.d/*dsm*                    
    /etc/rc3.d/S90dsmserv
    [root@FWDB init.d]$ service dsmserv restart 
    Stopping dsmserv...
    dsmserv stopped Successfully :-)
    
    Starting dsmserv ... Succeeded :-)

          这个TSM的输出显得有点山寨。

          大家可以留意下,启动和关闭TSM的顺序是不同的,分别是90和10,数值越小越优先启动和关闭,这是在哪里的定义的呢? 这是在dsmserv.rc这个文件的中定义的:

    [root@FWDB init.d]$ head -n 8 dsmserv   
    #!/bin/bash
    #
    # dsmserv       Start/Stop IBM Tivoli Storage Manager
    #
    # chkconfig: - 90 10
    # description: Starts/Stops the IBM Tivoli Storage Manager Server
    # processname: dsmserv
    # pidfile: /var/run/dsmserv.pid

          其中,第5行的90代表Start的顺序,10代表Kill(Stop)的顺序,不过更常用的做法是:

    # chkconfig: 2345 90 10

          指定需要注册的运行级别。注意一下,这种脚本的这两行是必须的,否则chkconfig --add会报错的:

    # chkconfig: _____________
    # description: _____________

          管理嘛,能添加也能删除,调用 chkconfig --del 就可以了。

  • 相关阅读:
    关于代码手写UI,xib和StoryBoard
    封装自己的framework静态库
    AsyncDisplayKit
    RunLoop
    AFNetworking2.0源码解析<三>
    AFNetworking2.0源码解析<四>
    AFNetworking2.0源码解析<二>
    AFNetworking2.0源码解析<一>
    多线程
    Mac svn 命令
  • 原文地址:https://www.cnblogs.com/killkill/p/1871542.html
Copyright © 2011-2022 走看看