[Kimchi-devel] [PATCH 1/2] Make the package update process indendent of Kimchi
Rodrigo Trujillo
rodrigo.trujillo at linux.vnet.ibm.com
Tue Sep 29 23:15:35 UTC 2015
On 09/29/2015 09:39 AM, Jose Ricardo Ziviani wrote:
> - This commit forces the package manager to run out of kimchi
> job group, it will also ignore a sigterm signal in order to let
> the package manager running until it finishes by itself.
>
> Signed-off-by: Jose Ricardo Ziviani <joserz at linux.vnet.ibm.com>
> ---
> plugins/kimchi/swupdate.py | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/plugins/kimchi/swupdate.py b/plugins/kimchi/swupdate.py
> index 84b927f..459b7a2 100644
> --- a/plugins/kimchi/swupdate.py
> +++ b/plugins/kimchi/swupdate.py
> @@ -17,6 +17,8 @@
> # License along with this library; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>
> +import signal
> +import os
OS before SIGNAL
> import subprocess
> import time
>
> @@ -110,6 +112,14 @@ class SoftwareUpdate(object):
> self._scanUpdates()
> return self._num2update
>
> + def preUpdate(self):
> + """
> + Make adjustments before executing the command in
> + a child process.
> + """
> + os.setsid()
> + signal.signal(signal.SIGTERM, signal.SIG_IGN)
> +
> def doUpdate(self, cb, params):
> """
> Execute the update
> @@ -119,7 +129,8 @@ class SoftwareUpdate(object):
>
> cmd = self._pkg_mnger.update_cmd
> proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
> - stderr=subprocess.PIPE)
> + stderr=subprocess.PIPE,
> + preexec_fn=self.preUpdate)
> msgs = []
> while proc.poll() is None:
> msgs.append(proc.stdout.readline())
More information about the Kimchi-devel
mailing list