@@ -40,6 +40,7 @@ EXTRA_DIST += \
debian/openvswitch-switch.ovs-record-hostname.service \
debian/openvswitch-switch.ovs-vswitchd.service \
debian/openvswitch-switch.ovsdb-server.service \
+ debian/openvswitch-switch.ovsdb-server.socket \
debian/openvswitch-switch.postinst \
debian/openvswitch-switch.postrm \
debian/openvswitch-switch.preinst \
@@ -1,4 +1,5 @@
#!/usr/bin/dh-exec
+debian/openvswitch-switch.ovsdb-server.socket => /lib/systemd/system/ovsdb-server.socket
debian/ifupdown.sh usr/share/openvswitch/scripts
debian/openvswitch-switch.default => /usr/share/openvswitch/switch/default.template
debian/ovs-systemd-reload /usr/share/openvswitch/scripts
@@ -1,10 +1,9 @@
[Unit]
Description=Open vSwitch Forwarding Unit
-After=ovsdb-server.service network-pre.target systemd-udev-settle.service
+After=ovsdb-server.socket network-pre.target systemd-udev-settle.service
Before=network.target networking.service
-Requires=ovsdb-server.service
+Requires=ovsdb-server.socket
ReloadPropagatedFrom=ovsdb-server.service
-AssertPathIsReadWrite=/var/run/openvswitch/db.sock
PartOf=openvswitch-switch.service
DefaultDependencies=no
@@ -2,6 +2,7 @@
Description=Open vSwitch Database Unit
After=systemd-journald.socket network-pre.target dpdk.service local-fs.target
Before=network.target networking.service
+Requires=ovsdb-server.socket
PartOf=openvswitch-switch.service
DefaultDependencies=no
new file mode 100644
@@ -0,0 +1,11 @@
+[Unit]
+Description=Open vSwitch Database Socket
+Before=ovsdb-server.service
+
+[Socket]
+ListenStream=/run/openvswitch/db.sock
+Service=ovsdb-server.service
+SocketMode=0770
+
+[Install]
+WantedBy=sockets.target
Add an ovsdb-server.socket unit that has systemd create and manage the /run/openvswitch/db.sock listening socket. This eliminates the window during ovsdb-server restarts when clients cannot connect to the database. Update service dependencies: - ovsdb-server.service: Requires=ovsdb-server.socket - ovs-vswitchd.service: After/Requires=ovsdb-server.socket instead of ovsdb-server.service, remove AssertPathIsReadWrite (socket exists before the service starts) Signed-off-by: Timothy Redaelli <tredaelli@redhat.com> --- debian/automake.mk | 1 + debian/openvswitch-switch.install | 1 + debian/openvswitch-switch.ovs-vswitchd.service | 5 ++--- debian/openvswitch-switch.ovsdb-server.service | 1 + debian/openvswitch-switch.ovsdb-server.socket | 11 +++++++++++ 5 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 debian/openvswitch-switch.ovsdb-server.socket