Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
BMD-PLUGIN-HOOKCMD(8)	     System Manager's Manual	   BMD-PLUGIN-HOOKCMD(8)

NAME
     bmd-plugin-hookcmd -- Spawns command when VM state is changed.

DESCRIPTION
     The  bmd-plugin-hookcmd  spawns  the  specific  command when VM's status is
     changed.

   Configuration
     This plugin expands VM configuration and add the  following  parameters  to
     specify which command is spawned/invoked.

     hookcmd = command_path;
	      File  path to the spawn command. The user/group ID of spawned com-
	      mand is as same as the owner/group of the VM.

     prestart = command_path;
	      File path to the prestart command. The prestart command is invoked
	      before starting the VM and delays starting it until  the	prestart
	      command terminates.

     poststop = command_path;
	      File path to the prestart command. The poststop command is invoked
	      after  the VM stopped. Cleaning up the VM resources will delay un-
	      til the poststop command terminates.

     The files of `prestart' and `poststop' must be owned by root. They are  in-
     voked  as	same uid/gid as the bmd(8) (root/wheel) and intended to setup OS
     specific envrionments such as routing, firewall, etc.

   Command Argument
     The spawned command receives following arguments in following order.

     VM_name
	     The name of VM.

     VM_state
	     The state of VM. One of these values.

	     LOAD	The loader is invoked.
	     RUN	VM start running.
	     TERMINATE	VM is terminated.
	     PRESTART	Before starting the VM.
	     POSTSTOP	After stopping the VM.

ENVIRONMENT VARIABLES
     The VM configurations are exported to the following environment variables.

     VM_NAME	   Virtual machine name.

     VM_ID	   Unique number for each individual VMs  that	starts	from  0.
		   Same as $ID in the predefined configuration variable.

     VM_OWNER	   Uid number of the owner.

     VM_GROUP	   Gid number of the group.  `-1' if it is not set.

     VM_NCPU	   Number of CPUs.

     VM_NCPU_PINS  Number of cpu_pin definitions.

     VM_CPU_PIN${n}
		   vcpu:hostcpu. Where ${n} starts from 1 to VM_NCPU_PINS.

     VM_MEMORY	   Size of memory which is specified in memory value.

     VM_WIRED_MEMORY
		   `true' or `false'.

     VM_UTCTIME    `true' or `false'.

     VM_REBOOT_ON_CHANGE
		   `true' or `false'.

     VM_SINGLE_USER
		   `true' or `false'.

     VM_INSTALL    `true' or `false'.

     VM_COMPORT    Assigned com port device name.

     VM_DEBUG_PORT
		   Debug port number.

     VM_BOOT	   Boot type.

     VM_BOOT_DELAY
		   Delay time in seconds.

     VM_LOADER_TIMEOUT
		   Loader timeout in seconds.

     VM_STOP_TIMEOUT
		   VM stop timeout in seconds.

     VM_LOADER	   Type of loader.

     VM_BHYVELOAD_LOADER
		   Path to the OS loader.

     VM_NBHYVELOAD_ENVS
		   Number of `bhyveload_env' s.

     VM_BHYVELOAD_ENV${n}
		   Bhyveload  environment  variable. Where ${n} starts from 1 to
		   VM_NBHYVELOAD_ENVS.

     VM_NBHYVE_ENVS
		   Number of `bhyve_env' s.

     VM_BHYVE_ENV${n}
		   Bhyve environment variable.	Where  ${n}  starts  from  1  to
		   VM_NBHYVE_ENVS.

     VM_LOADCMD    Loadcmd  value  which is specified in the configuration file.
		   This is not the value `bmdctl inspect` creates.

     VM_INSTALLCMD
		   Installcmd value which  is  specified  in  the  configuration
		   file.  This is not the value `bmdctl inspect` creates.

     VM_ERR_LOGFILE
		   Err_logfile name.

     VM_HOST_BRIDGE
		   `none' or `intel' or `amd'.

     VM_NPASSTHRUES
		   Number of `passthru' s.

     VM_PASSTHRU${n}
		   Passthru device. Where ${n} starts from 1 to VM_NPASSTHRUES.

     VM_TPM_DEV    Tpm device name. This is set if specified.

     VM_TPM_VERSION
		   Tpm device version. This is set if specified.

     VM_NDISKS	   Number of `disk' s.

     VM_DISK${n}_TYPE
		   Disk device type. Where ${n} starts from 1 to VM_NDISKS.

     VM_DISK${n}_PATH
		   Disk device path. Where ${n} starts from 1 to VM_NDISKS.

     VM_NDISOES    Number of `iso' s.

     VM_ISO${n}_TYPE
		   Iso device type. Where ${n} starts from 1 to VM_NISOES.

     VM_ISO${n}_PATH
		   Iso device path. Where ${n} starts from 1 to VM_NISOES.

     VM_NNETWORKS  Number of `network' s.

     VM_NETWORK${n}_TYPE
		   Network  device  type.  Where  ${n} starts from 1 to VM_NNET-
		   WORKS.

     VM_NETWORK${n}_TAP
		   Assigned tap interface name or vale(4) port name. Where  ${n}
		   starts from 1 to VM_NNETWORKS.

     VM_NETWORK${n}_BRIDGE
		   Bridge  interface  name  or	vale(4)  swtich name. Where ${n}
		   starts from 1 to VM_NNETWORKS.

     VM_GRAPHICS   `true' or `false'.

     VM_GRAPHICS_LISTEN
		   Vnc listen address. This is set if VM_GRAPHICS is `true'.

     VM_GRAPHICS_PORT
		   Vnc port number. This is set if VM_GRAPHICS is `true'.

     VM_GRAPHICS_PASSWORD
		   Vnc password. This is set if VM_GRAPHICS is `true'.

     VM_GRAPHICS_RES
		   <width> x <height>. This is set if VM_GRAPHICS is `true'.

     VM_GRAPHICS_WAIT
		   `true' or `false.' This is set if VM_GRAPHICS is `true'.

     VM_XHCI_MOUSE
		   `true' or `false.' This is set if VM_GRAPHICS is `true'.

SEE ALSO
     bmd(8), bmd.conf(5)

FreeBSD ports 15.quarterly	  Aug 15, 2023		   BMD-PLUGIN-HOOKCMD(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=bmd-plugin-hookcmd&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help