libvirt: command to start up all guest virtual machines which have auto-start enabledkvm/qemu linux guest vm...

Generate basis elements of the Steenrod algebra

How can I end combat quickly when the outcome is inevitable?

Meaning of 'lose their grip on the groins of their followers'

Why doesn't Adrian Toomes give up Spider-Man's identity?

How to hide an urban landmark?

Thread Pool C++ Implementation

How did old MS-DOS games utilize various graphic cards?

Is separation provided in class F airspace?

Non-aquatic eyes?

Rebus with 20 song titles

Colloquialism for “see you later”

Tabular make widths equal

What ways have you found to get edits from non-LaTeX users?

Why are trash cans referred to as "zafacón" in Puerto Rico?

Did Milano or Benatar approve or comment on their namesake MCU ships?

When would it be advantageous not apply Training Ground's cost reduction?

Why do some employees fill out a W-4 and some don't?

Should I give professor gift at the beginning of my PhD?

Has there been a multiethnic Star Trek character?

Does the Long March-11 increase its thrust after clearing the launch tower?

How do governments keep track of their issued currency?

Importance of Building Credit Score?

Determining fair price for profitable mobile app business

What to do when surprise and a high initiative roll conflict with the narrative?



libvirt: command to start up all guest virtual machines which have auto-start enabled


kvm/qemu linux guest vm wont bootRetrieve serial port information of a libvirt domain?USB ethernet device not working in VMWhy Debian Jessie is turned off instead of rebooting after installing qemu-kvm?QEMU Guest Agent for Ubuntu 12.04 LTSQEMU guest agent problems - hosts and guests in different versionsPause QEMU/KVM VM (save RAM and CPU state to disk) like vmware Player?Why is port forwarding via libvirt hook hijacking external NAT traffic?CPU usage increases on all guests if 1 guest has high usage (QEMU-KVM)Is KVM a hypervisor?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







4















I'm using Debian Jessie as a virtual machine host using libvirt/qemu/kvm.



I've set some of the guest virtual machines to automatically start when the host OS boots up, this is working fine.



For maintenance purposes, I'm running "service libvirt-guests stop" to shut all the guests down (but not the host).



Once I've done my maintenance, I want to easily boot all the guests up again (without rebooting the host).



Is there a single command that will start all the guest VMs up again? I'm interested in knowing about both:




  1. a command to start all the autostart-marked guests up again


  2. a command to start all the guests up again that were running before I ran "service libvirt-guests stop"



Rebooting the host OS would achieve #1, but I don't want to reboot the host.



I tried, "service libvirt-guests start" but it doesn't seem to do it.










share|improve this question





























    4















    I'm using Debian Jessie as a virtual machine host using libvirt/qemu/kvm.



    I've set some of the guest virtual machines to automatically start when the host OS boots up, this is working fine.



    For maintenance purposes, I'm running "service libvirt-guests stop" to shut all the guests down (but not the host).



    Once I've done my maintenance, I want to easily boot all the guests up again (without rebooting the host).



    Is there a single command that will start all the guest VMs up again? I'm interested in knowing about both:




    1. a command to start all the autostart-marked guests up again


    2. a command to start all the guests up again that were running before I ran "service libvirt-guests stop"



    Rebooting the host OS would achieve #1, but I don't want to reboot the host.



    I tried, "service libvirt-guests start" but it doesn't seem to do it.










    share|improve this question

























      4












      4








      4


      1






      I'm using Debian Jessie as a virtual machine host using libvirt/qemu/kvm.



      I've set some of the guest virtual machines to automatically start when the host OS boots up, this is working fine.



      For maintenance purposes, I'm running "service libvirt-guests stop" to shut all the guests down (but not the host).



      Once I've done my maintenance, I want to easily boot all the guests up again (without rebooting the host).



      Is there a single command that will start all the guest VMs up again? I'm interested in knowing about both:




      1. a command to start all the autostart-marked guests up again


      2. a command to start all the guests up again that were running before I ran "service libvirt-guests stop"



      Rebooting the host OS would achieve #1, but I don't want to reboot the host.



      I tried, "service libvirt-guests start" but it doesn't seem to do it.










      share|improve this question














      I'm using Debian Jessie as a virtual machine host using libvirt/qemu/kvm.



      I've set some of the guest virtual machines to automatically start when the host OS boots up, this is working fine.



      For maintenance purposes, I'm running "service libvirt-guests stop" to shut all the guests down (but not the host).



      Once I've done my maintenance, I want to easily boot all the guests up again (without rebooting the host).



      Is there a single command that will start all the guest VMs up again? I'm interested in knowing about both:




      1. a command to start all the autostart-marked guests up again


      2. a command to start all the guests up again that were running before I ran "service libvirt-guests stop"



      Rebooting the host OS would achieve #1, but I don't want to reboot the host.



      I tried, "service libvirt-guests start" but it doesn't seem to do it.







      virtual-machine kvm qemu libvirtd libvirt






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jul 3 '16 at 11:45









      LaVacheLaVache

      188310




      188310






















          5 Answers
          5






          active

          oldest

          votes


















          4














          Like @jason-harris solution. But simpler and start only marked for autostart.



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


          UPD: I tested it on libvirt 3.2.0 (CentOS 7.4.1708)






          share|improve this answer


























          • Thanks! I don't currently have a host system to test this on, but it looks exactly like what I was after. And simpler than the other solutions.

            – LaVache
            May 15 '18 at 10:53



















          1














          #! /bin/bash

          xmlfiles=( $(find /etc/libvirt/qemu/autostart/ -name '*.xml') )

          for f in "${xmlfiles[@]}" ; do
          domain=$(xml2 < $f | awk -F= '$1 == "/domain/name" {print $2}')

          # only start domain if it's not already running
          if ! virsh list | grep -q " ${domain} .*running" ; then
          virsh start "$domain"
          #else
          # optionally reboot domain otherwise
          #virsh reboot "$domain"
          fi

          done


          This script requires the xml2 utility (in package xml2 in debian and probably ubuntu too).



          It uses xml2 to extract the domain name(s) from all XML files in libvirt's qemu autostart directory, and runs virsh start on them if they're not already running.



          Save it somewhere in your PATH, as something like virsh-autostart.sh (or whatever makes sense to you) and make it executable with chmod.






          share|improve this answer

































            1














            I don't believe there is a simple command to do that (but it would be great!).



            I do this fairly often and it is usually just a quick script / one line command using a for loop and some awk.



            Keep in mind that if your hypervisor is connected to other hypervisors, you might want to sever that link temporarily so you don't inadvertently interfere with other VMs on other hypervisors. I haven't seen many people actually utilize this though, but I wanted to point that out.



            For instance, you could type the following to achieve the result you want, assuming you want to turn everything back on. This assumes you are root:



            for i in `virsh list --all|awk '{print $2}'|grep -v Name`; do virsh start $i; done


            The command breaks down like this:



            virsh list --all


            Shows all of the virtual machines, whether they are on or not.



            awk '{print $2}'|grep -v Name


            We are taking out the unneeded columns and only printing the column with the virtual machine names. Then we take out the header row with grep since it isn't actually a virtual machine.



            virsh start $i


            Turns on the virtual machine.



            And this is all wrapped around a general for loop.






            share|improve this answer































              0














              I use systemctl restart libvirtd.service. Works without a flaw in CentOS 7 (host).






              share|improve this answer































                0














                On Debian Stretch:



                systemctl restart libvirtd


                didn't do the job. Libvirt actually restarted its service but all qemu processes and the OS's inside kept running.



                This worked:



                systemctl stop libvirt-guests   # stops VMs
                systemctl restart libvirtd # starts VMs agains





                share|improve this answer
























                  Your Answer








                  StackExchange.ready(function() {
                  var channelOptions = {
                  tags: "".split(" "),
                  id: "106"
                  };
                  initTagRenderer("".split(" "), "".split(" "), channelOptions);

                  StackExchange.using("externalEditor", function() {
                  // Have to fire editor after snippets, if snippets enabled
                  if (StackExchange.settings.snippets.snippetsEnabled) {
                  StackExchange.using("snippets", function() {
                  createEditor();
                  });
                  }
                  else {
                  createEditor();
                  }
                  });

                  function createEditor() {
                  StackExchange.prepareEditor({
                  heartbeatType: 'answer',
                  autoActivateHeartbeat: false,
                  convertImagesToLinks: false,
                  noModals: true,
                  showLowRepImageUploadWarning: true,
                  reputationToPostImages: null,
                  bindNavPrevention: true,
                  postfix: "",
                  imageUploader: {
                  brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                  contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                  allowUrls: true
                  },
                  onDemand: true,
                  discardSelector: ".discard-answer"
                  ,immediatelyShowMarkdownHelp:true
                  });


                  }
                  });














                  draft saved

                  draft discarded


















                  StackExchange.ready(
                  function () {
                  StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f293570%2flibvirt-command-to-start-up-all-guest-virtual-machines-which-have-auto-start-en%23new-answer', 'question_page');
                  }
                  );

                  Post as a guest















                  Required, but never shown

























                  5 Answers
                  5






                  active

                  oldest

                  votes








                  5 Answers
                  5






                  active

                  oldest

                  votes









                  active

                  oldest

                  votes






                  active

                  oldest

                  votes









                  4














                  Like @jason-harris solution. But simpler and start only marked for autostart.



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


                  UPD: I tested it on libvirt 3.2.0 (CentOS 7.4.1708)






                  share|improve this answer


























                  • Thanks! I don't currently have a host system to test this on, but it looks exactly like what I was after. And simpler than the other solutions.

                    – LaVache
                    May 15 '18 at 10:53
















                  4














                  Like @jason-harris solution. But simpler and start only marked for autostart.



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


                  UPD: I tested it on libvirt 3.2.0 (CentOS 7.4.1708)






                  share|improve this answer


























                  • Thanks! I don't currently have a host system to test this on, but it looks exactly like what I was after. And simpler than the other solutions.

                    – LaVache
                    May 15 '18 at 10:53














                  4












                  4








                  4







                  Like @jason-harris solution. But simpler and start only marked for autostart.



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


                  UPD: I tested it on libvirt 3.2.0 (CentOS 7.4.1708)






                  share|improve this answer















                  Like @jason-harris solution. But simpler and start only marked for autostart.



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


                  UPD: I tested it on libvirt 3.2.0 (CentOS 7.4.1708)







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited May 15 '18 at 11:20

























                  answered May 12 '18 at 0:03









                  mmv-rummv-ru

                  46339




                  46339













                  • Thanks! I don't currently have a host system to test this on, but it looks exactly like what I was after. And simpler than the other solutions.

                    – LaVache
                    May 15 '18 at 10:53



















                  • Thanks! I don't currently have a host system to test this on, but it looks exactly like what I was after. And simpler than the other solutions.

                    – LaVache
                    May 15 '18 at 10:53

















                  Thanks! I don't currently have a host system to test this on, but it looks exactly like what I was after. And simpler than the other solutions.

                  – LaVache
                  May 15 '18 at 10:53





                  Thanks! I don't currently have a host system to test this on, but it looks exactly like what I was after. And simpler than the other solutions.

                  – LaVache
                  May 15 '18 at 10:53













                  1














                  #! /bin/bash

                  xmlfiles=( $(find /etc/libvirt/qemu/autostart/ -name '*.xml') )

                  for f in "${xmlfiles[@]}" ; do
                  domain=$(xml2 < $f | awk -F= '$1 == "/domain/name" {print $2}')

                  # only start domain if it's not already running
                  if ! virsh list | grep -q " ${domain} .*running" ; then
                  virsh start "$domain"
                  #else
                  # optionally reboot domain otherwise
                  #virsh reboot "$domain"
                  fi

                  done


                  This script requires the xml2 utility (in package xml2 in debian and probably ubuntu too).



                  It uses xml2 to extract the domain name(s) from all XML files in libvirt's qemu autostart directory, and runs virsh start on them if they're not already running.



                  Save it somewhere in your PATH, as something like virsh-autostart.sh (or whatever makes sense to you) and make it executable with chmod.






                  share|improve this answer






























                    1














                    #! /bin/bash

                    xmlfiles=( $(find /etc/libvirt/qemu/autostart/ -name '*.xml') )

                    for f in "${xmlfiles[@]}" ; do
                    domain=$(xml2 < $f | awk -F= '$1 == "/domain/name" {print $2}')

                    # only start domain if it's not already running
                    if ! virsh list | grep -q " ${domain} .*running" ; then
                    virsh start "$domain"
                    #else
                    # optionally reboot domain otherwise
                    #virsh reboot "$domain"
                    fi

                    done


                    This script requires the xml2 utility (in package xml2 in debian and probably ubuntu too).



                    It uses xml2 to extract the domain name(s) from all XML files in libvirt's qemu autostart directory, and runs virsh start on them if they're not already running.



                    Save it somewhere in your PATH, as something like virsh-autostart.sh (or whatever makes sense to you) and make it executable with chmod.






                    share|improve this answer




























                      1












                      1








                      1







                      #! /bin/bash

                      xmlfiles=( $(find /etc/libvirt/qemu/autostart/ -name '*.xml') )

                      for f in "${xmlfiles[@]}" ; do
                      domain=$(xml2 < $f | awk -F= '$1 == "/domain/name" {print $2}')

                      # only start domain if it's not already running
                      if ! virsh list | grep -q " ${domain} .*running" ; then
                      virsh start "$domain"
                      #else
                      # optionally reboot domain otherwise
                      #virsh reboot "$domain"
                      fi

                      done


                      This script requires the xml2 utility (in package xml2 in debian and probably ubuntu too).



                      It uses xml2 to extract the domain name(s) from all XML files in libvirt's qemu autostart directory, and runs virsh start on them if they're not already running.



                      Save it somewhere in your PATH, as something like virsh-autostart.sh (or whatever makes sense to you) and make it executable with chmod.






                      share|improve this answer















                      #! /bin/bash

                      xmlfiles=( $(find /etc/libvirt/qemu/autostart/ -name '*.xml') )

                      for f in "${xmlfiles[@]}" ; do
                      domain=$(xml2 < $f | awk -F= '$1 == "/domain/name" {print $2}')

                      # only start domain if it's not already running
                      if ! virsh list | grep -q " ${domain} .*running" ; then
                      virsh start "$domain"
                      #else
                      # optionally reboot domain otherwise
                      #virsh reboot "$domain"
                      fi

                      done


                      This script requires the xml2 utility (in package xml2 in debian and probably ubuntu too).



                      It uses xml2 to extract the domain name(s) from all XML files in libvirt's qemu autostart directory, and runs virsh start on them if they're not already running.



                      Save it somewhere in your PATH, as something like virsh-autostart.sh (or whatever makes sense to you) and make it executable with chmod.







                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      edited Jul 3 '16 at 16:28

























                      answered Jul 3 '16 at 16:15









                      cascas

                      40.1k457106




                      40.1k457106























                          1














                          I don't believe there is a simple command to do that (but it would be great!).



                          I do this fairly often and it is usually just a quick script / one line command using a for loop and some awk.



                          Keep in mind that if your hypervisor is connected to other hypervisors, you might want to sever that link temporarily so you don't inadvertently interfere with other VMs on other hypervisors. I haven't seen many people actually utilize this though, but I wanted to point that out.



                          For instance, you could type the following to achieve the result you want, assuming you want to turn everything back on. This assumes you are root:



                          for i in `virsh list --all|awk '{print $2}'|grep -v Name`; do virsh start $i; done


                          The command breaks down like this:



                          virsh list --all


                          Shows all of the virtual machines, whether they are on or not.



                          awk '{print $2}'|grep -v Name


                          We are taking out the unneeded columns and only printing the column with the virtual machine names. Then we take out the header row with grep since it isn't actually a virtual machine.



                          virsh start $i


                          Turns on the virtual machine.



                          And this is all wrapped around a general for loop.






                          share|improve this answer




























                            1














                            I don't believe there is a simple command to do that (but it would be great!).



                            I do this fairly often and it is usually just a quick script / one line command using a for loop and some awk.



                            Keep in mind that if your hypervisor is connected to other hypervisors, you might want to sever that link temporarily so you don't inadvertently interfere with other VMs on other hypervisors. I haven't seen many people actually utilize this though, but I wanted to point that out.



                            For instance, you could type the following to achieve the result you want, assuming you want to turn everything back on. This assumes you are root:



                            for i in `virsh list --all|awk '{print $2}'|grep -v Name`; do virsh start $i; done


                            The command breaks down like this:



                            virsh list --all


                            Shows all of the virtual machines, whether they are on or not.



                            awk '{print $2}'|grep -v Name


                            We are taking out the unneeded columns and only printing the column with the virtual machine names. Then we take out the header row with grep since it isn't actually a virtual machine.



                            virsh start $i


                            Turns on the virtual machine.



                            And this is all wrapped around a general for loop.






                            share|improve this answer


























                              1












                              1








                              1







                              I don't believe there is a simple command to do that (but it would be great!).



                              I do this fairly often and it is usually just a quick script / one line command using a for loop and some awk.



                              Keep in mind that if your hypervisor is connected to other hypervisors, you might want to sever that link temporarily so you don't inadvertently interfere with other VMs on other hypervisors. I haven't seen many people actually utilize this though, but I wanted to point that out.



                              For instance, you could type the following to achieve the result you want, assuming you want to turn everything back on. This assumes you are root:



                              for i in `virsh list --all|awk '{print $2}'|grep -v Name`; do virsh start $i; done


                              The command breaks down like this:



                              virsh list --all


                              Shows all of the virtual machines, whether they are on or not.



                              awk '{print $2}'|grep -v Name


                              We are taking out the unneeded columns and only printing the column with the virtual machine names. Then we take out the header row with grep since it isn't actually a virtual machine.



                              virsh start $i


                              Turns on the virtual machine.



                              And this is all wrapped around a general for loop.






                              share|improve this answer













                              I don't believe there is a simple command to do that (but it would be great!).



                              I do this fairly often and it is usually just a quick script / one line command using a for loop and some awk.



                              Keep in mind that if your hypervisor is connected to other hypervisors, you might want to sever that link temporarily so you don't inadvertently interfere with other VMs on other hypervisors. I haven't seen many people actually utilize this though, but I wanted to point that out.



                              For instance, you could type the following to achieve the result you want, assuming you want to turn everything back on. This assumes you are root:



                              for i in `virsh list --all|awk '{print $2}'|grep -v Name`; do virsh start $i; done


                              The command breaks down like this:



                              virsh list --all


                              Shows all of the virtual machines, whether they are on or not.



                              awk '{print $2}'|grep -v Name


                              We are taking out the unneeded columns and only printing the column with the virtual machine names. Then we take out the header row with grep since it isn't actually a virtual machine.



                              virsh start $i


                              Turns on the virtual machine.



                              And this is all wrapped around a general for loop.







                              share|improve this answer












                              share|improve this answer



                              share|improve this answer










                              answered Jul 3 '16 at 19:41









                              Jason HarrisJason Harris

                              713




                              713























                                  0














                                  I use systemctl restart libvirtd.service. Works without a flaw in CentOS 7 (host).






                                  share|improve this answer




























                                    0














                                    I use systemctl restart libvirtd.service. Works without a flaw in CentOS 7 (host).






                                    share|improve this answer


























                                      0












                                      0








                                      0







                                      I use systemctl restart libvirtd.service. Works without a flaw in CentOS 7 (host).






                                      share|improve this answer













                                      I use systemctl restart libvirtd.service. Works without a flaw in CentOS 7 (host).







                                      share|improve this answer












                                      share|improve this answer



                                      share|improve this answer










                                      answered Apr 24 '17 at 16:57









                                      Ned64Ned64

                                      2,66511438




                                      2,66511438























                                          0














                                          On Debian Stretch:



                                          systemctl restart libvirtd


                                          didn't do the job. Libvirt actually restarted its service but all qemu processes and the OS's inside kept running.



                                          This worked:



                                          systemctl stop libvirt-guests   # stops VMs
                                          systemctl restart libvirtd # starts VMs agains





                                          share|improve this answer




























                                            0














                                            On Debian Stretch:



                                            systemctl restart libvirtd


                                            didn't do the job. Libvirt actually restarted its service but all qemu processes and the OS's inside kept running.



                                            This worked:



                                            systemctl stop libvirt-guests   # stops VMs
                                            systemctl restart libvirtd # starts VMs agains





                                            share|improve this answer


























                                              0












                                              0








                                              0







                                              On Debian Stretch:



                                              systemctl restart libvirtd


                                              didn't do the job. Libvirt actually restarted its service but all qemu processes and the OS's inside kept running.



                                              This worked:



                                              systemctl stop libvirt-guests   # stops VMs
                                              systemctl restart libvirtd # starts VMs agains





                                              share|improve this answer













                                              On Debian Stretch:



                                              systemctl restart libvirtd


                                              didn't do the job. Libvirt actually restarted its service but all qemu processes and the OS's inside kept running.



                                              This worked:



                                              systemctl stop libvirt-guests   # stops VMs
                                              systemctl restart libvirtd # starts VMs agains






                                              share|improve this answer












                                              share|improve this answer



                                              share|improve this answer










                                              answered 57 mins ago









                                              Daniel BöhmerDaniel Böhmer

                                              247210




                                              247210






























                                                  draft saved

                                                  draft discarded




















































                                                  Thanks for contributing an answer to Unix & Linux Stack Exchange!


                                                  • Please be sure to answer the question. Provide details and share your research!

                                                  But avoid



                                                  • Asking for help, clarification, or responding to other answers.

                                                  • Making statements based on opinion; back them up with references or personal experience.


                                                  To learn more, see our tips on writing great answers.




                                                  draft saved


                                                  draft discarded














                                                  StackExchange.ready(
                                                  function () {
                                                  StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f293570%2flibvirt-command-to-start-up-all-guest-virtual-machines-which-have-auto-start-en%23new-answer', 'question_page');
                                                  }
                                                  );

                                                  Post as a guest















                                                  Required, but never shown





















































                                                  Required, but never shown














                                                  Required, but never shown












                                                  Required, but never shown







                                                  Required, but never shown

































                                                  Required, but never shown














                                                  Required, but never shown












                                                  Required, but never shown







                                                  Required, but never shown







                                                  Popular posts from this blog

                                                  Taj Mahal Inhaltsverzeichnis Aufbau | Geschichte | 350-Jahr-Feier | Heutige Bedeutung | Siehe auch |...

                                                  Baia Sprie Cuprins Etimologie | Istorie | Demografie | Politică și administrație | Arii naturale...

                                                  Nicolae Petrescu-Găină Cuprins Biografie | Opera | In memoriam | Varia | Controverse, incertitudini...