[PATCH] remote: systemd: Remove unix sockets from filesystem when disabling a '.socket' unit
Erik Skultety
eskultet at redhat.com
Tue Jan 18 15:01:22 UTC 2022
On Tue, Jan 18, 2022 at 03:51:21PM +0100, Michal Prívozník wrote:
> On 1/18/22 15:38, Peter Krempa wrote:
> > The existence of the unix socket path is used by the remote driver to
> > determine whether modular daemons are in use, so if the socket file
> > stays behind and the user decided to switch from modular to monolithic
> > daemon which was socket activated, the remote driver will insist on
> > picking '/var/run/libvirt/virtqemud-sock', even when it's no longer in
> > use:
> >
> > # systemctl start libvirtd.service
> > # virsh list
> > Id Name State
> > --------------------
> >
> > # systemctl stop libvirtd.service
> > Warning: Stopping libvirtd.service, but it can still be activated by:
> > libvirtd.socket
> > libvirtd-ro.socket
> > libvirtd-admin.socket
> > # systemctl start virtqemud.socket
> > # virsh list
> > Id Name State
> > --------------------
> >
> > # systemctl stop virtqemud.socket
> > # systemctl start libvirtd.service
> > # virsh list
> > error: failed to connect to the hypervisor
> > error: Failed to connect socket to '/var/run/libvirt/virtqemud-sock': Connection refused
> >
> > # virsh -c 'qemu:///system?socket=/var/run/libvirt/libvirt-sock' list
> > Id Name State
> > --------------------
> >
> > Fix this by instructing systemd to delete the socket file when
> > deactivating the unit file for the socket.
> >
> > Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> > ---
> > src/remote/libvirtd.socket.in | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/src/remote/libvirtd.socket.in b/src/remote/libvirtd.socket.in
> > index 85b4aa800a..0f349656f5 100644
> > --- a/src/remote/libvirtd.socket.in
> > +++ b/src/remote/libvirtd.socket.in
> > @@ -9,6 +9,7 @@ Before=@service at .service
> > ListenStream=@runstatedir@/libvirt/@sockprefix at -sock
> > Service=@service at .service
> > SocketMode=@mode@
> > +RemoveOnStop=yes
>
> I beg your pardon? Systemd leaves a stale socket behind? Isn't this
> something that systemd needs to fix?
>
> Michal
>
More information about the libvir-list
mailing list