output is not redirected when ps_mem is killed

This commit is contained in:
Jan Rybar 2022-02-02 17:31:49 +00:00
parent a019b05753
commit 4030e62895
2 changed files with 22 additions and 2 deletions

View File

@ -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()

View File

@ -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 <jrybar@redhat.com> - 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 <mboddu@redhat.com> - 3.6-15
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688