ovs-ctl: Exit, instead of resuming, after handling fatal signals.
authorBen Pfaff <blp@nicira.com>
Wed, 26 Dec 2012 20:45:34 +0000 (12:45 -0800)
committerBen Pfaff <blp@nicira.com>
Wed, 26 Dec 2012 20:46:28 +0000 (12:46 -0800)
When I wrote the "trap" calls in ovs-ctl, I had the mistaken notion that
"trap $cmd $signal" would execute $cmd and then exit when $signal was
caught.  This is incorrect.  Instead, it executes $cmd and then resumes
executing the shell script.

On the other hand, "trap $cmd 0" does by itself what I wanted: it causes
the shell to execute $cmd and then exits due to the signal.  So this commit
changes the offending traps to use this form.

Bug #14290.
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Kyle Mestery <kmestery@cisco.com>
utilities/ovs-ctl.in

index d770f42..87e7a86 100755 (executable)
@@ -321,7 +321,7 @@ force_reload_kmod () {
 
     script_interfaces=`mktemp`
     script_flows=`mktemp`
-    trap 'rm -f "${script_interfaces}" "${script_flows}" ' 0 1 2 13 15
+    trap 'rm -f "${script_interfaces}" "${script_flows}" ' 0
 
     action "Saving flows" save_flows
 
@@ -382,7 +382,7 @@ force_reload_kmod () {
 restart () {
     if daemon_is_running ovsdb-server && daemon_is_running ovs-vswitchd; then
         script_flows=`mktemp`
-        trap 'rm -f "${script_flows}"' 0 1 2 13 15
+        trap 'rm -f "${script_flows}"' 0
 
         action "Saving flows" save_flows
     fi