From 9b5422a98f817b9f2a1f8224cab7e1a8d0bbba1f Mon Sep 17 00:00:00 2001 From: Ilya Maximets Date: Wed, 16 Dec 2015 15:32:21 +0300 Subject: [PATCH] ovs-lib: Try to call exit before killing. While killing OVS may not free all allocated resources. Example: Socket for vhost-user port will stay in a system after 'systemctl stop openvswitch' and opening that port after restart will fail. Signed-off-by: Ilya Maximets Signed-off-by: Ben Pfaff --- utilities/ovs-lib.in | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/utilities/ovs-lib.in b/utilities/ovs-lib.in index dd8a1e931..773efb32c 100644 --- a/utilities/ovs-lib.in +++ b/utilities/ovs-lib.in @@ -202,11 +202,18 @@ start_daemon () { stop_daemon () { if test -e "$rundir/$1.pid"; then if pid=`cat "$rundir/$1.pid"`; then - for action in TERM .1 .25 .65 1 1 1 1 KILL 1 1 1 2 10 15 30 FAIL; do + for action in EXIT .1 .25 .65 1 \ + TERM .1 .25 .65 1 1 1 1 \ + KILL 1 1 1 2 10 15 30 \ + FAIL; do if pid_exists "$pid" >/dev/null 2>&1; then :; else return 0 fi case $action in + EXIT) + action "Exiting $1 ($pid)" \ + ${bindir}/ovs-appctl -T 1 -t $rundir/$1.$pid.ctl exit + ;; TERM) action "Killing $1 ($pid)" kill $pid ;; -- 2.20.1