From 4030e62895569503c05edd07e41925cd363bb090 Mon Sep 17 00:00:00 2001 From: Jan Rybar Date: Wed, 2 Feb 2022 17:31:49 +0000 Subject: [PATCH] output is not redirected when ps_mem is killed --- ps_mem.py | 16 +++++++++++++++- ps_mem.spec | 8 +++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/ps_mem.py b/ps_mem.py index 8e30bce..2f21845 100644 --- a/ps_mem.py +++ b/ps_mem.py @@ -78,6 +78,7 @@ import time import errno import os import sys +import io # The following exits cleanly on Ctrl-C or EPIPE # while treating other exceptions as before. @@ -100,6 +101,16 @@ our_pid = os.getpid() have_pss = 0 +class Unbuffered(io.TextIOBase): + def __init__(self, stream): + super().__init__() + self.stream = stream + def write(self, data): + self.stream.write(data) + self.stream.flush() + def close(self): + self.stream.close() + class Proc: def __init__(self): uname = os.uname() @@ -245,7 +256,7 @@ def getMemStats(pid): def getCmdName(pid, split_args): cmdline = proc.open(pid, 'cmdline').read().split("\0") - if cmdline[-1] == '' and len(cmdline) > 1: + while cmdline[-1] == '' and len(cmdline) > 1: cmdline = cmdline[:-1] path = proc.path(pid, 'exe') @@ -454,6 +465,9 @@ def verify_environment(): raise def main(): + sys.stdout = Unbuffered(sys.stdout) + sys.stderr = Unbuffered(sys.stderr) + split_args, pids_to_show, watch, only_total = parse_options() verify_environment() diff --git a/ps_mem.spec b/ps_mem.spec index 8c805c5..137ce5b 100644 --- a/ps_mem.spec +++ b/ps_mem.spec @@ -1,7 +1,7 @@ Name: ps_mem Version: 3.6 -Release: 15%{?dist} +Release: 16%{?dist} Summary: Memory profiling tool License: LGPLv2 URL: https://github.com/pixelb/ps_mem @@ -46,6 +46,12 @@ install -Dpm644 %{name}.1 %{buildroot}%{_mandir}/man1/%{name}.1 %changelog +* Wed Feb 02 2022 Jan Rybar - 3.6-16 +- output is not redirected when ps_mem is killed +- cmdline unwanted blank spaces fixed +- Resolves: rhbz#2033997 +- Resolves: rhbz#2049743 + * Tue Aug 10 2021 Mohan Boddu - 3.6-15 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688