From 9f1fde6694d0894cefb85493eca75e172fd8d7e5 Mon Sep 17 00:00:00 2001 From: Romain Courteaud <romain@nexedi.com> Date: Wed, 20 Jun 2012 14:05:13 +0200 Subject: [PATCH] Wrapper recipe to kill all process children. Combined with supervisord, it allows to kill all fork of the process. --- setup.py | 1 + slapos/recipe/signal_wrapper.py | 37 +++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 slapos/recipe/signal_wrapper.py diff --git a/setup.py b/setup.py index 929333805..c228ead56 100644 --- a/setup.py +++ b/setup.py @@ -131,6 +131,7 @@ setup(name=name, 'erp5.test = slapos.recipe.erp5_test:Recipe', 'generic.varnish = slapos.recipe.generic_varnish:Recipe', 'webchecker = slapos.recipe.web_checker:Recipe', + 'signalwrapper= slapos.recipe.signal_wrapper:Recipe', ], 'slapos.recipe.nosqltestbed.plugin': [ 'kumo = slapos.recipe.nosqltestbed.kumo:KumoTestBed', diff --git a/slapos/recipe/signal_wrapper.py b/slapos/recipe/signal_wrapper.py new file mode 100644 index 000000000..77f63aa51 --- /dev/null +++ b/slapos/recipe/signal_wrapper.py @@ -0,0 +1,37 @@ +############################################################################## +# +# Copyright (c) 2012 Vifib SARL and Contributors. All Rights Reserved. +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsibility of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# guarantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 3 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## +from slapos.recipe.librecipe import GenericBaseRecipe + +class Recipe(GenericBaseRecipe): + def install(self): + return [ + self.createPythonScript( + self.options['wrapper-path'], + 'slapos.recipe.librecipe.execute.execute_with_signal_translation', + [self.options['wrapped-path']] + ) + ] -- 2.30.9