• centos7也支持service命令启动服务吗,对于centos7 中的systemctl和旧的service命令的区别和联系


    一、centos7也支持service命令启动服务吗

     

    CentOS 7.0中一个最主要的改变,就是切换到了systemd。用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理systemd兼容SysV和Linux标准组的启动脚本。Systemd是一个Linux操作系统下的系统和服务管理器它被设计成向后兼容SysV启动脚本(所谓的向后兼容就是对于之前的版本都是兼容的,但是对于之后的版本就不兼容了!),并提供了大量的特性,如开机时平行启动系统服务,按需启动守护进程,支持系统状态快照,或者基于依赖的服务控制逻辑。


    先前的使用SysV初始化或Upstart的红帽企业版Linux版本中,使用位于/etc/rc.d/init.d/目录中的bash初始化脚本进行管理。而在RHEL 7/CentOS 7中,这些启动脚本被服务单元(服务单元的样子:
    以.service结尾)取代了。服务单元以.service文件扩展结束,提供了与初始化脚本同样的用途要查看、启动、停止、重启、启用或者禁用系统服务,你要使用systemctl来代替旧的service命令。
    注:为了向后兼容,旧的service命令在CentOS 7中仍然可用,它会重定向所有命令到新的systemctl工具。
    

     

    下面是systemctl使用例子

    使用systemctl来启动/停止/重启服务
    要启动一个服务,你需要使用如下命令:

    # systemctl start httpd.service
    这会启动httpd服务,就我们而言,Apache HTTP服务器。
    要停掉它,需要以root身份使用该命令:
    # systemctl stop httpd.service
    要重启,你可以使用restart选项,如果服务在运行中,它将重启服务;如果服务不在运行中,它将会启动。你也可以使用try-start选项,它只会在服务已经在运行中的时候重启服务。同时,reload选项你也可以有,它会重新加载配置文件。
    # systemctl restart httpd.service
    # systemctl try-restart httpd.service
    # systemctl reload httpd.service
    我们例子中的命令看起来会像下面这样:



    检查服务状态
    要检查服务状态,你可以使用status选项,看这里:
    # systemctl status httpd.service
    输出结果就像这样:

    它会告诉你运行中的服务的方方面面。
    使用启用/禁用服务来控制开机启动
    你也可以使用enable/disable选项来控制一个服务是否开机启动,命令如下:
    # systemctl enable httpd.service
    # systemctl disable httpd.service

    小结:1、先前的service命令在centos7 中仍然是可以使用的,因为旧的service命令(如:service network start命令)也是可以在centos7系统中执行的,系统会自动的重定向到新的命令

       2、centos7的系统都是用service的 使用位于/etc/rc.d/init.d/目录中的bash初始化脚本进行管理。而在RHEL 7/CentOS 7中,这些启动脚本被服务单元(服务单元的样子:

    以.service结尾)取代了

    参考链接:http://blog.sina.com.cn/s/blog_12b1464290102yc9f.html

    二、centos7 中的systemctl和旧的service命令的区别和联系

    1、service命令的执行的原理:通过执行脚本的形式去管理、开启、关闭和重启服务

    发现linux启动服务是用SERVICE + COMMAND+参数,觉得很有意思,因为command命令本身也是一个脚本啊,比如说:service network restart;好奇心就来了,怎么能够做一个属于自己的service命令呢。

    其实很简单,只要我们认识service这个命令的原理就行了。如果要知道service这个命令怎么用,你就自己man service下,在这里,我简要说下service的运行过程。举个例子来说:service network restart。

    首先呢,sevice 会去寻找/etc/init.d下的network脚本,restart是network脚本里的一个参数(你可以去查看network这个脚本支持的参数),然后告诉系统运行network这个脚本,剩下的事情就交给network脚本去坐了,事实就是这么简单。

    现在,你应该知道怎么编写属于自己的service命令了吧,编写一个脚本,然后把它放在/etc/init.d这个目录底下,你就可以用service +脚本名字 运行它。如果是要开机自动启动那就得用chkconfig命令了。

    注意:

    A、service这个命令往往是即时生效,不用开关机,但是重启后服务会回到默认状态。

    B、chkconfig是用于把服务加到开机自动启动列表里,只要启动它,就能自动启动,重启后永久生效

    即:chkconfig --add COMMAND 

          chkconfig COMMAND on/off    重启后永久生效

    2、systemctl命令的原理:

    linux中systemctl详细理解:

    一、systemctl理解

    Linux 服务管理两种方式service和systemctl

    systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。想要更深的理解systemd ,可以见链接:https://www.cnblogs.com/isme-zjh/p/11685327.html

    systemd对应的进程管理命令是systemctl

    1. systemctl命令兼容了service

    即systemctl也会去/etc/init.d目录下,查看,执行相关程序,

    因为systemctl实际上是

    在RHEL 7/CentOS 7中,这些启动脚本被服务单元(服务单元的样子:
    以.service结尾)取代了。服务单元以.service文件扩展结束,提供了与初始化脚本同样的用途(启动服务、关闭服务等,)常见的.service

    具体更深的对于  systemctl  命令管理的具体的资源的类型和具体的应用的命令可以见链接:https://www.cnblogs.com/isme-zjh/p/11685233.html

  • 相关阅读:
    朴灵:基于MongoDB与NodeJS构建物联网系统
    平均年薪40万!为什么却很少见程序员炫富?
    写春联、变魔术、模仿马云唱歌_为你揭秘阿里云人工智能ET背后的技术
    Mysql查询性能优化-善用Explain语句
    numpy linspace arange函数
    vim笔记
    redis压缩列表
    tensorflow笔记之反向传播时用到的几种方法
    损失函数
    kafka 修改partition,删除topic,查询offset
  • 原文地址:https://www.cnblogs.com/isme-zjh/p/11685300.html
Copyright © 2020-2023  润新知