2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-22 01:51:26 +00:00
ovs/rhel/usr_lib_systemd_system_ovs-vswitchd.service.in

33 lines
1.1 KiB
SYSTEMD
Raw Normal View History

[Unit]
Description=Open vSwitch Forwarding Unit
After=ovsdb-server.service network-pre.target systemd-udev-settle.service
Before=network.target network.service
Requires=ovsdb-server.service
ReloadPropagatedFrom=ovsdb-server.service
AssertPathIsReadWrite=/run/openvswitch/db.sock
PartOf=openvswitch.service
[Service]
Type=forking
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
Environment=XDG_RUNTIME_DIR=/run/openvswitch
EnvironmentFile=/etc/openvswitch/default.conf
EnvironmentFile=-/etc/sysconfig/openvswitch
EnvironmentFile=-/run/openvswitch.useropts
LimitSTACK=2M
@begin_dpdk@
ExecStartPre=-/bin/sh -c '/usr/bin/chown :$${OVS_USER_ID##*:} /dev/hugepages'
ExecStartPre=-/usr/bin/chmod 0775 /dev/hugepages
@end_dpdk@
ExecStart=/usr/share/openvswitch/scripts/ovs-ctl \
--no-ovsdb-server --no-monitor --system-id=random \
${OVS_USER_OPT} \
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 \
${OVS_USER_OPT} \
restart $OPTIONS
TimeoutSec=300