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:

# acrnctl help
support:
  list
  start
  stop
  del
  add
  pause
  continue
  suspend
  resume
  reset
Use acrnctl [cmd] help for details

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:

# acrnctl add launch_UOS.sh -U 1
vm1-14:59:30 added

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:

# acrnctl del vm1-14:59:30

List VMs

Use the list command to display VMs and their state:

# 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:

# acrnctl start vm-yocto

Stop VM

Use the stop command to stop one or more running VM:

# acrnctl stop vm-yocto vm1-14:59:30 vm-android

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. The acrnd daemon stores pending UOS work to /opt/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

Build and Install

Source code for both acrnctl and acrnd is in the tools/acrn-manager folder. Change to that folder and run:

# make
# make install