zoukankan      html  css  js  c++  java
  • 手动编译安装Libvirt之后利用systemctl管理libvirtd服务

    因为要给特殊的虚拟机关联文件指定selinux标签,而默认的Libvirt没有这个功能,所以需要修改LIbvirt源代码,重新编译安装Libvirt,而手动编译安装的LIbvirt,没有办法使用systemctl管理libvirtd服务,只能通过libvirtd -d的方式手动启动。然而,手动启动的Libvirtd服务并不符合开发规范,所以只能手动把libvirtd.service添加到systemctl管理。


    这就要详解下systemctl管理程序了

    一、systemctl介绍

    systemctl 是一个systemd工具,主要负责控制systemd系统和服务管理器,而Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程,当前redhat系列的Linux发行版都是采用这种方式。Systemd的功能是用于集中管理和配置类UNIX系统。而我们要通过systemctl管理服务原因之一也是想让系统进程启动我们的服务,这在标签机制中涉及到标签的继承问题,这里不在深入。

    二、通过systemctl管理服务

    通过systemctl管理服务简单高效,本来还是想深入分析写勒,但是突然发现一个大牛的博客,这里我就不画蛇添足了,需要的可以参考:

    http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html

    重点写下通过systemctl管理libvirtd的具体步骤:

     1、systemctl管理的每个单元都有一个文件与之对应,以sshd服务来讲,对应的就是sshd.service,存在于/usr/lib/systemd/system/文件夹下,而在/etc/systemd/system/文件夹下有该文件的软连接,表明这是自动启动的。为了简便,我是从别处通过rpm包安装的libvirt机器上拷贝其libvirtd.service文件到本机的/etc/systemd/system/文件夹下。

    文件内容如图所示:

    其中的大部分内容不需要改动,就是下面的文件的路径需要改,因为手动编译安装的libvirt安装路径在/usr/local/sbin/libvirtd

    另外需要注意的是上面Unit单元里面after表示该服务以来上面的服务,这里libvirt-guest.service在手动编译安装的版本里面没有,需要我们自行安装,其具体作用不详。没有libvirt-client.service,libvirt仍然可以正常工作可以看出这个并不影响Libvirt基本功能,其所作的应该是管理类的工作。没有libvirt-client.service通过systemctl 没办法正常管理libvirtd.service

    2、复制配置文件/etc/sysconfig/libvirtd文件到本机同等目录

    3、安装libvirt-guests

    yum install libvirt-guests

    4、执行函数重新载入

    systemctl damon-reload

     5、测试

    systemctl status libvirtd.service

    systemctl start libvirtd.service

     

    systemctl restart libvirtd.service

    systemctl enable libvirtd.service

     查看状态:

  • 相关阅读:
    【转】ON_COMMAND ON_MESSAGE ON_NOTIFY区别与联系
    Eureka
    application.yml-mysql8
    sprigcloud
    springboot
    maven
    排序算法之基数排序
    排序算法之桶排序
    排序算法之计数排序
    排序算法之堆排序
  • 原文地址:https://www.cnblogs.com/ck1020/p/6024039.html
Copyright © 2011-2022 走看看