libvirt: команда запуска всех гостевых виртуальных машин, у которых включен автозапуск

Я думаю тогда нужно перечислить каталоги. Это автоматически сгенерирует для вас строку:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

# Copyright © 2016 Martin Ueding <dev@martin-ueding.de>
# Licensed under the MIT license

import argparse
import os


def main():
    options = _parse_args()

    additions = []

    for base in options.base:
        for dirpath, dirnames, filenames in os.walk(base):
            additions.append(dirpath)

    line = ':'.join(additions)

    if options.short:
        print(line)
    else:
        print('PATH=$PATH:'+line)


def _parse_args():
    parser = argparse.ArgumentParser(description='')
    parser.add_argument('base', nargs='+', help='Basepath')
    parser.add_argument('--short', action='store_true')
    options = parser.parse_args()

    return options


if __name__ == '__main__':
    main()

Сохраните этот фрагмент как / usr / bin / path-recurse и примените chmod + x / usr / bin / path-recurse .Затем вы можете использовать его в своем приглашении либо для создания строки с path-recurse / tmp / foobar… , и он выдаст вам строку Bash:

PATH=$PATH:/tmp:/tmp/kde-muIusrrC:/tmp/vs0cOIg:/tmp/.esd-1000:/tmp/ssh-oGWOvuUnyqPF:/tmp/.Test-unix:/tmp/.font-unix:/tmp/.XIM-unix:/tmp/.ICE-unix:/tmp/.X11-unix 

В качестве альтернативы вы можете использовать следующее в своем ] .bashrc :

PATH=$PATH:$(path-recurve /tmp /foobar …)

Затем он будет динамически проходить по всем папкам при каждом источнике .bashrc .

4
03.07.2016, 14:45
4 ответа

Como @jason -solución harris. Pero más simple y comienza solo marcado para inicio automático.

for i in $(virsh list --name --autostart); do virsh start $i; done

UPD:Lo probé en libvirt 3.2.0 (CentOS 7.4.1708)

9
27.01.2020, 20:52

Я использую systemctl restart libvirtd.service . Безупречно работает в CentOS 7 (хост).

0
27.01.2020, 20:52

На Debian Stretch:

systemctl restart libvirtd

не выполнили задание. Libvirt фактически перезапустила свою службу, но все qemuпроцессы и внутренности ОС продолжали работать.

Это сработало:

systemctl stop libvirt-guests   # stops VMs
systemctl restart libvirtd      # starts VMs agains
0
27.01.2020, 20:52

Вы также можете использовать KVM _AutoBoot(https://github.com/eduardolucioac/kvm_autoboot)для запуска одной или нескольких виртуальных машин при загрузке сервера с помощью KVM (libvirt ). Также можно определить интервал между запуском виртуальной машины и следующим.

ПРИМЕЧАНИЕ.:Хотя KVM _AutoBoot не отвечает на то, что вы хотите именно так, как вы хотите, его можно использовать для автоматической загрузки виртуальных машин KVM, определенных в списке, при загрузке сервера. или когда вы запускаете(systemctl start kvm_autoboot.service)его.

Спасибо! =D

0
27.02.2020, 13:42

Теги

Похожие вопросы