mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-04-29 20:24:00 +00:00
Run 'acrnctl stop VM_NAME --force‘ to force stop VM When run 'acrnctl stop VM_NAME', acrn-dm let guest OS to shutdown itself. If something wrong with guest OS, it can't shutdown, we can run 'acrnctl stop VM_NAME --force', thus acrn-dm directly set suspend mode to VM_SUSPEND_POWEROFF and quit main loop. Tracked-On: #3484 Signed-off-by: Tao Yuhong <yuhong.tao@intel.com> Reviewed-by: Yan, Like <like.yan@intel.com> |
||
---|---|---|
.. | ||
acrn_mngr.c | ||
acrn_mngr.h | ||
acrn_vm_ops.c | ||
acrnctl.c | ||
acrnctl.h | ||
acrnd.c | ||
acrnd.service | ||
Makefile | ||
README.rst |
.. _acrnctl: acrnctl and acrnd ################# Description *********** The ``acrnctl`` tool helps users create, delete, launch, and stop a User OS (UOS). The tool runs under the Service OS, and UOSs should be based on ``acrn-dm``. The daemon for acrn-manager is `acrnd`_. Usage ===== You can see the available ``acrnctl`` commands by running: .. code-block:: none # acrnctl help support: list start stop del add pause continue suspend resume reset blkrescan Use acrnctl [cmd] help for details .. note:: You must run ``acrnctl`` with root privileges. Here are some usage examples: Add a VM ======== The ``add`` command lets you add a VM by specifying a script that will launch a UOS, for example ``launch_uos.sh``: .. code-block:: none # acrnctl add launch_uos.sh -U 1 vm1-14:59:30 added If a ``-C`` option is also specified, the VM is launched in a runC container:: # acrnctl add launch_uos.sh -C .. note:: You can download an `example launch_uos.sh script <https://raw.githubusercontent.com/projectacrn/acrnhypervisor/master/devicemodel/samples/nuc/launch_uos.sh>`_ that supports the ``-C`` (``run_container`` function) option. You may refer to :ref:`acrn-dm_qos` for more details about this option. Note that the launch script must only launch one UOS instance. The VM name is important. ``acrnctl`` searches VMs by their names so duplicate VM names are not allowed. If the launch script changes the VM name at launch time, ``acrnctl`` will not recognize it. Delete VMs ========== Use the ``delete`` command with a VM name to delete that VM: .. code-block:: none # acrnctl del vm1-14:59:30 List VMs ======== Use the ``list`` command to display VMs and their state: .. code-block:: none # acrnctl list vm1-14:59:30 untracked vm-yocto stopped vm-android stopped Start VM ======== If a VM is in a ``stopped`` state, you can start it with the ``start`` command: .. code-block:: none # acrnctl start vm-yocto Stop VM ======= Use the ``stop`` command to stop one or more running VM: .. code-block:: none # acrnctl stop vm-yocto vm1-14:59:30 vm-android RESCAN BLOCK DEVICE =================== Use the ``blkrescan`` command to trigger a rescan of virtio-blk device by guest VM, in order to revalidate and update the backend file. .. code-block:: none # acrnctl blkrescan vmname slot,newfilepath vmname: Name of VM with dummy backend file attached to virtio-blk device. slot: Slot number of the virtio-blk device. newfilepath: File path for the backend of virtio-blk device. acrnctl blkrescan vm1 6,actual_file.img .. note:: blkrescan is only supported when VM is launched with empty backend file (using **nodisk**) for virtio-blk device. Replacing a valid backend file is not supported and will result in error. .. _acrnd: acrnd ***** The ``acrnd`` daemon process provides a way for launching or resuming a UOS should the UOS shut down, either planned or unexpected. A UOS can ask ``acrnd`` to set up a timer to make sure the UOS is running, even if the SOS is suspended or stopped. Usage ===== You can see the available ``acrnd`` commands by running: .. code-block:: none $ acrnd -h acrnd - Daemon for ACRN VM Management [Usage] acrnd [-t] [-d delay] [-h] -t: print messages to stdout -d: delay the autostarting of VMs, <0-60> in second (not available in the ``RELEASE=1`` build) -h: print this message Normally, ``acrnd`` runs silently (messages are directed to ``/dev/null``). Use the ``-t`` option to direct messages to ``stdout``, useful for debugging. The ``acrnd`` daemon stores pending UOS work to ``/usr/share/acrn/conf/timer_list`` and sets an RTC timer to wake up the SOS or bring the SOS back up again. When ``acrnd`` daemon is restarted, it restores the previously saved timer list and launches the UOSs at the right time. A ``systemd`` service file (``acrnd.service``) is installed by default that will start the ``acrnd`` daemon when the Service OS comes up. You can restart/stop acrnd service using ``systemctl`` .. note:: You must run ``acrnd`` with root privileges. Build and Install ***************** Source code for both ``acrnctl`` and ``acrnd`` is in the ``tools/acrn-manager`` folder. Change to that folder and run: .. code-block:: none # make # make install