2016-07-25 14:03:53 -04:00
|
|
|
[Unit]
|
|
|
|
Description=Open vSwitch Forwarding Unit
|
2017-04-18 11:13:49 -04:00
|
|
|
After=ovsdb-server.service network-pre.target systemd-udev-settle.service
|
2016-10-07 13:36:45 -04:00
|
|
|
Before=network.target network.service
|
2016-07-25 14:03:53 -04:00
|
|
|
Requires=ovsdb-server.service
|
|
|
|
ReloadPropagatedFrom=ovsdb-server.service
|
2021-05-12 17:08:08 +02:00
|
|
|
AssertPathIsReadWrite=/run/openvswitch/db.sock
|
2016-07-25 14:03:53 -04:00
|
|
|
PartOf=openvswitch.service
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
Type=forking
|
2021-05-12 17:08:08 +02:00
|
|
|
PIDFile=/run/openvswitch/ovs-vswitchd.pid
|
rhel-systemd: Restart openvswitch service if a daemon crashes
Currently if either ovsdb-server or ovs-vswitchd is crashing the
daemon is not restarting leaving the system in faulty state.
This patch will detect the daemon crash and will restart the
openvswitch service.
Here is a (bit to wide) table showing the behavior before and after
the patch. Note that only the Crash behavior has changed:
Before patch:
| Process Status | systemctl <> status |
| ovs-vswitchd | ovsdb-server | openvswitch | ovs-vswitchd | ovsdb-server |
+--------------+--------------+--------------+--------------+--------------+
systemctl start openvswitch* | started | started |active,exited |active,running|active,running|
Crash vswitchd | crashed | stopped |inactive, dead|failed |inactive,dead |
Crash ovsdb | stopped | crashed |inactive, dead|inactive,dead |failed |
systemctl restart openvswitch | re-started | re-started |active,exited |active,running|active,running|
systemctl restart ovs-vswitchd | re-started | re-started |active,exited |active,running|active,running|
systemctl restart ovsdb-server | re-started | re-started |active,exited |active,running|active,running|
systemctl stop openvswitch | stopped | stopped |inactive, dead|inactive,dead |inactive,dead |
systemctl stop ovs-vswitchd | stopped | stopped |inactive, dead|inactive,dead |inactive,dead |
systemctl stop ovsdb-server | stopped | stopped |inactive, dead|inactive,dead |inactive,dead |
systemctl start ovs-vswitchd* | started | started |inactive, dead|active,running|active,running|
systemctl start ovsdb-server* | not started | started |inactive, dead|inactive, dead|active,running|
With patch:
| Process Status | systemctk <> status |
| ovs-vswitchd | ovsdb-server | openvswitch | ovs-vswitchd | ovsdb-server |
+--------------+--------------+--------------+--------------+--------------+
systemctl start openvswitch* | started | started |active,exited |active,running|active,running|
Crash vswitchd | crash,started| re-started |active,exited |active,running|active,running|
Crash ovsdb | re-started | crash,started|active,exited |active,running|active,running|
systemctl restart openvswitch | re-started | re-started |active,exited |active,running|active,running|
systemctl restart ovs-vswitchd | re-started | re-started |active,exited |active,running|active,running|
systemctl restart ovsdb-server | re-started | re-started |active,exited |active,running|active,running|
systemctl stop openvswitch | stopped | stopped |inactive, dead|inactive,dead |inactive,dead |
systemctl stop ovs-vswitchd | stopped | stopped |inactive, dead|inactive,dead |inactive,dead |
systemctl stop ovsdb-server | stopped | stopped |inactive, dead|inactive,dead |inactive,dead |
systemctl start ovs-vswitchd* | started | started |inactive, dead|active,running|active,running|
systemctl start ovsdb-server* | not started | started |inactive, dead|inactive, dead|active,running|
* These commands where executed when no ovs related processes where
running. All other commands where executed when OVS was successfully
running.
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
Acked-by: Markos Chandras <mchandras@suse.de>
Acked-by: Aaron Conole <aconole@redhat.com>
Acked-by: Flavio Leitner <fbl@sysclose.org>
Signed-off-by: Russell Bryant <russell@ovn.org>
2017-02-27 15:56:41 -05:00
|
|
|
Restart=on-failure
|
2021-05-12 17:08:08 +02:00
|
|
|
Environment=XDG_RUNTIME_DIR=/run/openvswitch
|
2017-08-04 13:00:53 -04:00
|
|
|
EnvironmentFile=/etc/openvswitch/default.conf
|
2016-07-25 14:03:53 -04:00
|
|
|
EnvironmentFile=-/etc/sysconfig/openvswitch
|
2019-05-08 13:53:47 +02:00
|
|
|
EnvironmentFile=-/run/openvswitch.useropts
|
2019-02-28 13:13:57 -03:00
|
|
|
LimitSTACK=2M
|
2017-08-04 13:00:57 -04:00
|
|
|
@begin_dpdk@
|
2018-04-16 17:15:47 +02:00
|
|
|
ExecStartPre=-/bin/sh -c '/usr/bin/chown :$${OVS_USER_ID##*:} /dev/hugepages'
|
2017-08-14 16:18:14 -04:00
|
|
|
ExecStartPre=-/usr/bin/chmod 0775 /dev/hugepages
|
2017-08-04 13:00:57 -04:00
|
|
|
@end_dpdk@
|
2016-07-25 14:03:53 -04:00
|
|
|
ExecStart=/usr/share/openvswitch/scripts/ovs-ctl \
|
|
|
|
--no-ovsdb-server --no-monitor --system-id=random \
|
2019-05-08 13:53:48 +02:00
|
|
|
${OVS_USER_OPT} \
|
2016-07-25 14:03:53 -04:00
|
|
|
start $OPTIONS
|
|
|
|
ExecStop=/usr/share/openvswitch/scripts/ovs-ctl --no-ovsdb-server stop
|
|
|
|
ExecReload=/usr/share/openvswitch/scripts/ovs-ctl --no-ovsdb-server \
|
|
|
|
--no-monitor --system-id=random \
|
2019-05-08 13:53:48 +02:00
|
|
|
${OVS_USER_OPT} \
|
2016-07-25 14:03:53 -04:00
|
|
|
restart $OPTIONS
|
2017-07-13 10:51:34 -04:00
|
|
|
TimeoutSec=300
|