[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RFC: towards systemd socket activation in q-s-d
From: |
Eric Blake |
Subject: |
RFC: towards systemd socket activation in q-s-d |
Date: |
Fri, 27 Jan 2023 15:26:15 -0600 |
User-agent: |
NeoMutt/20220429 |
In https://bugzilla.redhat.com/show_bug.cgi?id=2055229, the question
was raised on how to make qemu-storage-daemon sufficiently powerful to
be a full-blown replacement to qemu-nbd. One of the features still
lacking is the ability to do systemd socket activation (qemu-nbd does
this, qemu-storage-daemon needs a way to do it).
But that bug further noted that systemd supports LISTEN_FDNAMES to
supply names to a passed-in fd (right now, qemu-nbd does not use
names, but merely expects one fd in LISTEN_FDS). Dan had the idea
that it would be nice to write a systemd file that passes in a socket
name for a QMP socket, as in:
[Socket]
ListenStream=/var/run/myapp/qsd.qmp
FileDescriptorName=qmp
Service=myapp-qsd.service
and further notes that QAPI SocketAddressType supports @fd which is a
name in QMP (a previously-added fd passed through the older 'getfd'
command, rather than the newer 'add-fd' command), but an integer on
the command line. With LISTEN_FDNAMES, we could mix systemd socket
activation with named fds for any command line usage that already
supports SocketAddressType (not limited to just q-s-d usage).
I'm at a point where I can take a shot at implementing this, but want
some feedback on whether it is better to try to shoehorn a generic
solution into the existing @fd member of the SocketAddressType union,
or whether it would be better to add yet another union member
@systemd-fd or some similar name to make it explicit when a command
line parameter wants to refer to an fd being passed through systemd
socket activation LISTEN_FDS and friends.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
- RFC: towards systemd socket activation in q-s-d,
Eric Blake <=