<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="systemd-detect-virt"
          xmlns:xi="http://www.w3.org/2001/XInclude">

  <refentryinfo>
    <title>systemd-detect-virt</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>systemd-detect-virt</refentrytitle>
    <manvolnum>1</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>systemd-detect-virt</refname>
    <refpurpose>Detect execution in a virtualized environment</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>systemd-detect-virt</command>
      <arg choice="opt" rep="repeat">OPTIONS</arg>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para><command>systemd-detect-virt</command> detects execution in
    a virtualized environment. It identifies the virtualization
    technology and can distinguish full machine virtualization from
    container virtualization. <filename>systemd-detect-virt</filename>
    exits with a return value of 0 (success) if a virtualization
    technology is detected, and non-zero (error) otherwise. By default,
    any type of virtualization is detected, and the options
    <option>--container</option> and <option>--vm</option> can be used
    to limit what types of virtualization are detected.</para>

    <para>When executed without <option>--quiet</option> will print a
    short identifier for the detected virtualization technology. The
    following technologies are currently identified:</para>

    <table>
      <title>Known virtualization technologies (both
      VM, i.e. full hardware virtualization,
      and container, i.e. shared kernel virtualization)</title>
      <tgroup cols='3' align='left' colsep='1' rowsep='1'>
        <colspec colname="type" />
        <colspec colname="id" />
        <colspec colname="product" />
        <thead>
          <row>
            <entry>Type</entry>
            <entry>ID</entry>
            <entry>Product</entry>
          </row>
        </thead>
        <tbody>
          <row>
            <entry valign="top" morerows="13">VM</entry>
            <entry><varname>qemu</varname></entry>
            <entry>QEMU software virtualization, without KVM</entry>
          </row>

          <row>
            <entry><varname>kvm</varname></entry>
            <entry>Linux KVM kernel virtual machine, in combination with QEMU. Not used for other virtualizers using the KVM interfaces, such as Oracle VirtualBox or Amazon EC2 Nitro, see below.</entry>
          </row>

          <row>
            <entry><varname>amazon</varname></entry>
            <entry>Amazon EC2 Nitro using Linux KVM</entry>
          </row>

          <row>
            <entry><varname>zvm</varname></entry>
            <entry>s390 z/VM</entry>
          </row>

          <row>
            <entry><varname>vmware</varname></entry>
            <entry>VMware Workstation or Server, and related products</entry>
          </row>

          <row>
            <entry><varname>microsoft</varname></entry>
            <entry>Hyper-V, also known as Viridian or Windows Server Virtualization</entry>
          </row>

          <row>
            <entry><varname>oracle</varname></entry>
            <entry>Oracle VM VirtualBox (historically marketed by innotek and Sun Microsystems), for legacy and KVM hypervisor</entry>
          </row>

          <row>
            <entry><varname>powervm</varname></entry>
            <entry>IBM PowerVM hypervisor — comes as firmware with some IBM POWER servers</entry>
          </row>

          <row>
            <entry><varname>xen</varname></entry>
            <entry>Xen hypervisor (only domU, not dom0)</entry>
          </row>

          <row>
            <entry><varname>bochs</varname></entry>
            <entry>Bochs Emulator</entry>
          </row>

          <row>
            <entry><varname>uml</varname></entry>
            <entry>User-mode Linux</entry>
          </row>

          <row>
            <entry><varname>parallels</varname></entry>
            <entry>Parallels Desktop, Parallels Server</entry>
          </row>

          <row>
            <entry><varname>bhyve</varname></entry>
            <entry>bhyve, FreeBSD hypervisor</entry>
          </row>

          <row>
            <entry><varname>qnx</varname></entry>
            <entry>QNX hypervisor</entry>
          </row>

          <row>
            <entry><varname>acrn</varname></entry>
            <entry><ulink url="https://projectacrn.org">ACRN hypervisor</ulink></entry>
          </row>

          <row>
            <entry valign="top" morerows="9">Container</entry>
            <entry><varname>openvz</varname></entry>
            <entry>OpenVZ/Virtuozzo</entry>
          </row>

          <row>
            <entry><varname>lxc</varname></entry>
            <entry>Linux container implementation by LXC</entry>
          </row>

          <row>
            <entry><varname>lxc-libvirt</varname></entry>
            <entry>Linux container implementation by libvirt</entry>
          </row>

          <row>
            <entry><varname>systemd-nspawn</varname></entry>
            <entry>systemd's minimal container implementation, see <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry></entry>
          </row>

          <row>
            <entry><varname>docker</varname></entry>
            <entry>Docker container manager</entry>
          </row>

          <row>
            <entry><varname>podman</varname></entry>
            <entry><ulink url="https://podman.io">Podman</ulink> container manager</entry>
          </row>

          <row>
            <entry><varname>rkt</varname></entry>
            <entry>rkt app container runtime</entry>
          </row>

          <row>
            <entry><varname>wsl</varname></entry>
            <entry><ulink url="https://docs.microsoft.com/en-us/windows/wsl/about">Windows Subsystem for Linux</ulink></entry>
          </row>

          <row>
            <entry><varname>proot</varname></entry>
            <entry><ulink url="https://proot-me.github.io/">proot</ulink> userspace chroot/bind mount emulation</entry>
          </row>

          <row>
            <entry><varname>pouch</varname></entry>
            <entry><ulink url="https://github.com/alibaba/pouch">Pouch</ulink> Container Engine</entry>
          </row>
        </tbody>
      </tgroup>
    </table>

    <para>If multiple virtualization solutions are used, only the
    "innermost" is detected and identified. That means if both
    machine and container virtualization are used in
    conjunction, only the latter will be identified (unless
    <option>--vm</option> is passed).</para>
    <para> Windows Subsystem for Linux is not a Linux container,
    but an environment for running Linux userspace applications on
    top of the Windows kernel using a Linux-compatible interface.
    WSL is categorized as a container for practical purposes.
    Multiple WSL environments share the same kernel and services
    should generally behave like when being run in a container.</para>
  </refsect1>

  <refsect1>
    <title>Options</title>

    <para>The following options are understood:</para>

    <variablelist>
      <varlistentry>
        <term><option>-c</option></term>
        <term><option>--container</option></term>

        <listitem><para>Only detects container virtualization (i.e.
        shared kernel virtualization).</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-v</option></term>
        <term><option>--vm</option></term>

        <listitem><para>Only detects hardware virtualization.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-r</option></term>
        <term><option>--chroot</option></term>

        <listitem><para>Detect whether invoked in a
        <citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>2</manvolnum></citerefentry>
        environment. In this mode, no output is written, but the return
        value indicates whether the process was invoked in a
        <function>chroot()</function>
        environment or not.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>--private-users</option></term>

        <listitem><para>Detect whether invoked in a user namespace.  In this mode, no
        output is written, but the return value indicates whether the process was invoked
        inside of a user namespace or not. See
        <citerefentry project='man-pages'><refentrytitle>user_namespaces</refentrytitle><manvolnum>7</manvolnum></citerefentry>
        for more information.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-q</option></term>
        <term><option>--quiet</option></term>

        <listitem><para>Suppress output of the virtualization
        technology identifier.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>--list</option></term>

        <listitem><para>Output all currently known and detectable container and VM environments.</para></listitem>
      </varlistentry>

      <xi:include href="standard-options.xml" xpointer="help" />
      <xi:include href="standard-options.xml" xpointer="version" />
    </variablelist>

  </refsect1>

  <refsect1>
    <title>Exit status</title>

    <para>If a virtualization technology is detected, 0 is returned, a
    non-zero code otherwise.</para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
      <citerefentry project='man-pages'><refentrytitle>namespaces</refentrytitle><manvolnum>7</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>
