"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
+ SPDX-License-Identifier: LGPL-2.1+
+
This file is part of systemd.
Copyright 2010 Lennart Poettering
-
- systemd is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
-
- systemd is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="systemd-detect-virt"
- xmlns:xi="http://www.w3.org/2001/XInclude">
+ xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-detect-virt</title>
<refsynopsisdiv>
<cmdsynopsis>
- <command>systemd-detect-virt <arg choice="opt" rep="repeat">OPTIONS</arg></command>
+ <command>systemd-detect-virt</command>
+ <arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<para><command>systemd-detect-virt</command> detects execution in
a virtualized environment. It identifies the virtualization
- technology and can distinguish full VM virtualization from
+ 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,
<colspec colname="product" />
<thead>
<row>
- <entry>Type</entry>
- <entry>ID</entry>
- <entry>Product</entry>
+ <entry>Type</entry>
+ <entry>ID</entry>
+ <entry>Product</entry>
</row>
</thead>
<tbody>
<row>
- <entry morerows="9">VM</entry>
- <entry><varname>qemu</varname></entry>
- <entry>QEMU software virtualization</entry>
+ <entry valign="top" morerows="11">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, with whatever software, except Oracle Virtualbox</entry>
</row>
<row>
- <entry><varname>kvm</varname></entry>
- <entry>Linux KVM kernel virtual machine</entry>
+ <entry><varname>zvm</varname></entry>
+ <entry>s390 z/VM</entry>
</row>
<row>
- <entry><varname>zvm</varname></entry>
- <entry>s390 z/VM</entry>
+ <entry><varname>vmware</varname></entry>
+ <entry>VMware Workstation or Server, and related products</entry>
</row>
<row>
- <entry><varname>vmware</varname></entry>
- <entry>VMware Workstation or Server, and related products</entry>
+ <entry><varname>microsoft</varname></entry>
+ <entry>Hyper-V, also known as Viridian or Windows Server Virtualization</entry>
</row>
<row>
- <entry><varname>microsoft</varname></entry>
- <entry>Hyper-V, also known as Viridian or Windows Server Virtualization</entry>
+ <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>oracle</varname></entry>
- <entry>Oracle VM VirtualBox (historically marketed by innotek and Sun Microsystems)</entry>
+ <entry><varname>xen</varname></entry>
+ <entry>Xen hypervisor (only domU, not dom0)</entry>
</row>
<row>
- <entry><varname>xen</varname></entry>
- <entry>Xen hypervisor (only domU, not dom0)</entry>
+ <entry><varname>bochs</varname></entry>
+ <entry>Bochs Emulator</entry>
</row>
<row>
- <entry><varname>bochs</varname></entry>
- <entry>Bochs Emulator</entry>
+ <entry><varname>uml</varname></entry>
+ <entry>User-mode Linux</entry>
</row>
<row>
- <entry><varname>uml</varname></entry>
- <entry>User-mode Linux</entry>
+ <entry><varname>parallels</varname></entry>
+ <entry>Parallels Desktop, Parallels Server</entry>
</row>
<row>
- <entry><varname>parallels</varname></entry>
- <entry>Parallels Desktop, Parallels Server</entry>
+ <entry><varname>bhyve</varname></entry>
+ <entry>bhyve, FreeBSD hypervisor</entry>
</row>
<row>
- <entry morerows="5">Container</entry>
- <entry><varname>openvz</varname></entry>
- <entry>OpenVZ/Virtuozzo</entry>
+ <entry><varname>qnx</varname></entry>
+ <entry>QNX hypervisor</entry>
</row>
<row>
- <entry><varname>lxc</varname></entry>
- <entry>Linux container implementation by LXC</entry>
+ <entry valign="top" morerows="5">Container</entry>
+ <entry><varname>openvz</varname></entry>
+ <entry>OpenVZ/Virtuozzo</entry>
</row>
<row>
- <entry><varname>lxc-libvirt</varname></entry>
- <entry>Linux container implementation by libvirt</entry>
+ <entry><varname>lxc</varname></entry>
+ <entry>Linux container implementation by LXC</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>
+ <entry><varname>lxc-libvirt</varname></entry>
+ <entry>Linux container implementation by libvirt</entry>
</row>
<row>
- <entry><varname>docker</varname></entry>
- <entry>Docker container manager</entry>
+ <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>rkt</varname></entry>
- <entry>rkt app container runtime</entry>
+ <entry><varname>docker</varname></entry>
+ <entry>Docker container manager</entry>
+ </row>
+
+ <row>
+ <entry><varname>rkt</varname></entry>
+ <entry>rkt app container runtime</entry>
</row>
</tbody>
</tgroup>
</table>
<para>If multiple virtualization solutions are used, only the
- "innermost" is detected and identified. That means if both VM
- virtualization and container virtualization are used in
+ "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>
</refsect1>
<term><option>-v</option></term>
<term><option>--vm</option></term>
- <listitem><para>Only detects VM virtualization (i.e. full
- hardware virtualization).</para></listitem>
+ <listitem><para>Only detects hardware virtualization).</para></listitem>
</varlistentry>
<varlistentry>
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>
<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><refentrytitle>chroot</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
+ <citerefentry project='man-pages'><refentrytitle>namespaces</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>