diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in
index 047620f79b..2e51429e7a 100644
--- a/src/remote/libvirtd.service.in
+++ b/src/remote/libvirtd.service.in
@@ -21,7 +21,11 @@ Documentation=https://libvirt.org
 [Service]
 Type=notify
 EnvironmentFile=-/etc/sysconfig/libvirtd
-ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS
+# libvirtd.service is set to run on boot so that autostart of
+# VMs can be performed. We don't want it to stick around if
+# unused though, so we set a timeout. The socket activation
+# then ensures it gets started again if anything needs it
+ExecStart=@sbindir@/libvirtd --timeout 30 $LIBVIRTD_ARGS
 ExecReload=/bin/kill -HUP $MAINPID
 KillMode=process
 Restart=on-failure