• 系统服务管理


    小知识:服务是指操作系统中提供指定功能的程序或进程。服务也是一种应用程序,不同的是服务一般只在后台运行,且服务的对象一般是本地系统或网络中的主机和用户。

    一、查看系统服务

    Linux系统中存在许多服务,按服务对象不同,通常可以分为本地系统服务和网络服务两类。本地系统服务主要用于支撑本地系统运行,例如打印、网络支持、防火墙服务、蓝牙支持服务等。网络服务通常用于对网络中的用户或主机提供服务,例如Web应用服务、代理服务、FTP、数据库服务等。

    无论何种服务,在Linux系统中都可以设置为在一个或多个特定的运行级别中自动启动,即当系统进入某个指定的运行级别时,会自动运行设置在该级别中的服务。管理这些服务的第1步是查看系统中的服务。

    查看Linux系统中的服务列表,可以使用命令chkconfig。该命令可以用于查看服务的自启动状态,也可用于设置服务的启动状态。

    【命令格式】

    chkconfig –list [name]

    【用法示例】

    chkconfig命令可以查看单一服务的自启动状态,也可以用于查询系统中的服务列表。

    (1)查询系统防火墙服务iptables的自启动状态:

    [root@localhost home]# chkconfig --list iptables
    iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

    注意:使用选项list和服务名称查看服务时,必须使用服务的全名,否则无法查到结果。

    (2)如果不使用服务名称参数,命令会列出系统中所有服务:

    #独立服务的自启动状态
    [root@localhost home]# chkconfig --list
    NetworkManager  0:off   1:off   2:off   3:off   4:off   5:off   6:off
    NetworkManagerDispatcher        0:off   1:off   2:off   3:off   4:off   5:off   6:off
    acpid           0:off   1:off   2:off   3:on    4:on    5:on    6:off
    anacron         0:off   1:off   2:on    3:on    4:on    5:on    6:off
    apmd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
    ...
    
    #以下为非独立服务的启动状态
    xinetd based services:
            chargen-dgram:  off
            chargen-stream: off
            cvs:            off
            daytime-dgram:  off
            ...

    说明:像上面命令中输出的那样,在每个运行级别中都可以设置自启动状态的服务称为独立服务。命令输出的最后几个服务是一些老式的服务集,现在已经很少有人使用这些服务。这些服务集的运行状态,依赖于一个名为xinetd的服务。通常将这些依赖于xinetd得到服务称为非独立服务。非独立服务受xinetd服务管理,因此如果要启动这些服务,首先应该启动xinetd。

    (3)有时可能会忘记一些服务的具体名称,也可能只记得服务名称的一部分,这时可以将chkconfig命令与grep命令一起配合使用:

    例如要查询服务名称中含有nfs的服务列表:

    [root@localhost home]# chkconfig --list | grep nfs
    nfs             0:off   1:off   2:off   3:off   4:off   5:off   6:off
    nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off

    二、设置服务自启动状态

    【命令格式】

    chkconfig [--level <levels>] <name> <on|off>

    在上面的命令格式中,尖括号<>中的内容表示必须使用的参数。如果使用了选项level,必须为参数指定运行级别列表,并且设置自启动状态必须指定服务名称和启动状态。

    【用法示例】

    使用命令chkconfig既可以设置独立服务的自启动状态,也可以设置非独立服务的自启动状态。

    (1)设置独立服务系统防火墙的自启动状态为关闭:

    [root@localhost home]# chkconfig iptables off
    [root@localhost home]# chkconfig --list iptables
    iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off

    (2)如果要设置开启防火墙:

    [root@localhost home]# chkconfig iptables on
    [root@localhost home]# chkconfig --list iptables
    iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

    这是防火墙将会在运行级别为2,3,4,5时自动启动。

    (3)从(1)(2)中可以看出,设置服务为开启状态时,命令默认将其设置为运行级别2,3,4,5为开启。设置服务关闭时,默认设置为所以运行级别关闭。显然这个默认设置并不适用于所有用户和服务,这是可以使用选项level指定运行级别列表。

    例如设置系统防火墙在运行级别3,5中自动启动:

    [root@localhost home]# chkconfig --level 35 iptables on
    [root@localhost home]# chkconfig --list iptables
    iptables        0:off   1:off   2:off   3:on    4:off   5:on    6:off

    (4)对于非独立服务而言,由于没有运行级别这个概念,因此不能使用level选项指定运行级别列表,可以直接设置这些服务的状态。

    例如要将telnet服务设置为开机自启动:

    [root@localhost home]# chkconfig telnet on
    [root@localhost home]# chkconfig --list telnet
    telnet          on

    由于非独立服务受服务xinetd的管理,因此还应该将xinetd设置为自动启动:

    [root@localhost home]# chkconfig --level 345 xinetd on
    [root@localhost home]# chkconfig --list xinetd
    xinetd          0:off   1:off   2:off   3:on    4:on    5:on    6:off

    注意:虽然可以使用chkconfig命令设置非独立服务的自启动状态,但这并不能让所有非独立服务启动。有些非独立服务可能还需要手动修改其配置文件,这样xinetd服务启动后才能启动这些非独立服务。

    (5)Red Hat 的发行版中,通常还可以使用工具ntsysv设置服务的自启动状态。

    三、添加、删除系统服务

    chkconfig命令不仅可以查看、设置服务的自启动状态,还可以添加系统服务(前提条件是有可供使用的运行级别脚本,就像/etc/init.d/目录下的那些脚本)。

    【命令格式】

    chkconfig –add <name>

    chkconfig –del  <name>

    【用法示例】

    要添加系统服务,首先需要将运行级别脚本拷贝到系统服务脚本目录/etc/init.d/中。

    此处将以MySQL 5.1.55源码包中提供的运行级别脚本为例,演示如何添加、删除系统服务。

    (1)MySQL 5.1.55编译安装完成后,可以复制源码目录中的support-files/mysql.server至系统服务脚本目录/etc/init.d,重命名为mysqld,并使用chmod为其添加可执行权限。完成此步骤后,chkconfig就能自动检测到新加入的运行级别脚本了。

    (2)此时可以使用chkconfig命令将MySQL的运行级别脚本添加为系统服务:

    # chkconfig --add mysqld

    (3)从系统中移除MySQL后,还需要将其系统服务也一并移除,以免产生不必要的错误:

    # chkconfig --del mysqld

    如果确认再不需要使用服务的运行脚本,可以使用rm命令将其运行脚本删除。

    注意:并不是所有发行版都支持chkconfig命令。

    四、启动和关闭服务命令service

    在系统运行状态时启动和关闭某个服务。

    【命令格式】

    service name [start|stop|restart]

    有些服务也可以使用save(保存)和reload(重新载入配置文件)等动作。

    【用法示例】

    (1)例如要关闭系统防火墙iptables:

    [root@localhost ~]# service iptables stop
    #由于系统防火墙以模块的形式加载到系统中(不同于其他服务),因此关闭时,也卸载了相关模块
    Flushing firewall rules:                                   [  OK  ]
    Setting chains to policy ACCEPT: filter                    [  OK  ]
    Unloading iptables modules:                                [  OK  ]
    [root@localhost ~]# service iptables status
    Firewall is stopped.

    (2)有时修改了服务的配置文件,希望以新的配置文件运行服务,这是可以使用restart参数让服务重新启动,以重新读取配置文件。

    例如管理员通过修改配置文件的方法重新设置网络接口卡的IP地址等信息,并希望系统网络重新启动:

    [root@localhost ~]# service network restart
    Shutting down interface eth0:                              [  OK  ]
    Shutting down loopback interface:                          [  OK  ]
    Bringing up loopback interface:                            [  OK  ]
    Bringing up interface eth0:  
    Determining IP information for eth0... done.
                                                               [  OK  ]

    执行上面的命令后,系统会先关闭网络支持服务network,然后再读取配置文件,并用新的配置文件启动网络接口。

    (3)然而有些发行版不支持service命令,由于服务的启动脚本都放在目录/etc/init.d中,因此可以使用手动运行的方式执行启动脚本:

    例如要启动系统计划任务服务crond:

    [root@localhost ~]# /etc/init.d/crond start
    Starting crond:                                            [  OK  ]

    (4)许多服务除了启动、停止和重启之外,还有一些其他动作,如保存、重新载入配置文件等(并非所有服务都支持这些动作)。

    例如要保存系统防火墙规则:

    [root@localhost ~]# service iptables save
    Saving firewall rules to /etc/sysconfig/iptables:          [  OK  ]
  • 相关阅读:
    几个不错的网页载入页面
    .NET 中关于日期时间的格式化处理
    防止网站内容被人小偷和采集的ASP代码
    .Net学习资源集
    Net程序如何防止被注入(整站通用)
    一个采集入库生成本地文件的几个FUCTION
    网页数据采集小偷
    浅谈自动采集程序及入库
    网页图片处理JS代码整理
    spark导入工程后,出现一些错误
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3470458.html
Copyright © 2020-2023  润新知