VIRTLXCD(8)

πŸ“¦
version 12.3.0 Β· 5 versions
, in alpine 3.24

πŸ‘‘ VIRTLXCD(8) β€” libvirt LXC management daemon πŸ’…

okay so this one lives in section 8 of the manual (the Virtualization Support corner of the world), and bestie, it's the LXC one. let's get into it 🫢


✨ NAME ✨

virtlxcd β€” the libvirt LXC management daemon, aka your girl for container wrangling 🐳


✨ SYNOPSIS ✨

virtlxcd [OPTION]...

literally that's it. flags go in, daemon goes brrr ✨


πŸ’– DESCRIPTION πŸ’–

okay so virtlxcd is a server side daemon component of the libvirt virtualization management system. it's part of the whole libvirt situation, not off doing its own thing πŸ’…

it's one of a collection of modular daemons that replace functionality previously provided by the monolithic libvirtd daemon. so like... libvirtd used to do everything and now it's a group project and everyone has their own job. iconic division of labor honestly πŸ‘‘

this daemon runs on virtualization hosts to provide management for LXC containers. that's the whole gig πŸŽ€

the virtlxcd daemon only listens for requests on a local Unix domain socket. only local. it does not do remote. if you need remote access via TLS/TCP, plus backwards compatibility with legacy clients expecting libvirtd, that's provided by the virtproxyd daemon. different girl, different job 🌸

now, important bit: restarting virtlxcd does not interrupt running guests. the guests continue to operate and changes in their state will generally be picked up automatically during startup. so your containers keep vibing ✨ none the less it is recommended to avoid restarting with running guests whenever practical. so like, it's fine, but also don't make a habit of it, iykyk πŸ™ˆ


πŸ¦‹ DAEMON STARTUP MODES πŸ¦‹

the virtlxcd daemon is capable of starting in two modes, bestie. two whole modes. pick your fighter ⭐

πŸ”Œ Socket activation mode

on hosts with systemd it is started in socket activation mode, and it will rely on systemd to create and listen on the UNIX sockets and pass them as pre-opened file descriptors.

in this mode most of the socket related config options in /etc/libvirt/virtlxcd.conf will no longer have any effect. yeah. they just sit there. decorative. πŸ’€ systemd is doing the socket work now, not you.

πŸ•―οΈ Traditional service mode

on hosts without systemd, it will create and listen on UNIX sockets itself. self-sufficient queen energy πŸ‘‘ no systemd, no problem.


πŸ’… OPTIONS πŸ’…

  • -h, --help β€” display command line help usage then exit. the "i'm lost" button 🫢
  • -d, --daemon β€” run as a daemon & write PID file. background mode, main character energy ✨
  • -f, --config FILE β€” use this configuration file, overriding the default value. custom config, your rules πŸ’–
  • -p, --pid-file FILE β€” use this name for the PID file, overriding the default value. name your pid file whatever you want, slay πŸŽ€
  • -t, --timeout SECONDS β€” exit after timeout period (in seconds), provided there are neither any client connections nor any running domains. so it dips out ONLY if nobody's talking to it and nothing's running. no cap πŸ¦‹
  • -v, --verbose β€” enable output of verbose messages. it's giving "tell me everything" πŸ—£οΈ
  • --version β€” display version information then exit. the quick vibe check 🌈

🌸 SIGNALS 🌸

on receipt of SIGHUP, virtlxcd will reload its configuration. that's the whole section. one signal. one job. periodt πŸ’…


πŸŽ€ FILES πŸŽ€

the virtlxcd program must be ran as root. trying to start the program under a different user results in error. no root, no daemon. that's the rule πŸ”₯

  • /etc/libvirt/virtlxcd.conf

the default configuration file used by virtlxcd, unless overridden on the command line using the -f | --config option. πŸ’–

in addition to the default configuration file, virtlxcd reads configuration for the LXC driver from:

  • /etc/libvirt/lxc.conf

this file contains various knobs and default values for virtual machines created within the LXC driver, and offers a way to override the built in defaults. also: the location of this file can't be overridden by any command line switch. nope. not happening. it stays put πŸ™ˆ

  • /run/libvirt/virtlxcd-sock
  • /run/libvirt/virtlxcd-sock-ro
  • /run/libvirt/virtlxcd-admin-sock

the sockets virtlxcd will use. all three of them, each one iconic in its own way ✨

the TLS Server private key virtlxcd will use. (yep, that's the whole line, that's how it's written, i don't make the rules πŸ’€)

  • /run/virtlxcd.pid

the PID file to use, unless overridden by the -p | --pid-file option. πŸŽ€


⭐ EXAMPLES ⭐

to retrieve the version of virtlxcd:

# virtlxcd --version
virtlxcd (libvirt) 12.3.0

to start virtlxcd, instructing it to daemonize and create a PID file:

# virtlxcd -d
# ls -la /run/virtlxcd.pid
-rw-r--r-- 1 root root 6 Jul  9 02:40 /run/virtlxcd.pid

look at that pid file. six whole bytes. living its best life πŸ“


πŸ¦‹ BUGS πŸ¦‹

please report all bugs you discover. and like, actually report them, don't just complain in the group chat 😭 this should be done via either:

  1. the mailing list

<https://libvirt.org/contact.html>

  1. the bug tracker

<https://libvirt.org/bugs.html>

alternatively, you may report bugs to your software distributor / vendor. they're right there πŸ’œ


πŸ‘‘ AUTHORS πŸ‘‘

please refer to the AUTHORS file distributed with libvirt. the whole squad's in there 🫢


Copyright (C) 2006-2020 Red Hat, Inc., and the authors listed in the libvirt AUTHORS file.


πŸ’– LICENSE πŸ’–

virtlxcd is distributed under the terms of the GNU LGPL v2.1+. this is free software; see the source for copying conditions. there is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. like, zero warranty. none. don't come for her if it breaks πŸ’€


🌸 SEE ALSO 🌸

virsh(1), libvirtd(8), <https://libvirt.org/daemons.html>, <https://libvirt.org/drvlxc.html>


and that's the page bestie, you ate that πŸŽ€ mwah πŸ’‹

VIRTLXCD(8) β€” Virtualization Support ⭐ go be root, run your containers, and stan responsibly πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from