summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2020-04-28 04:27:56 +0200
committerGiampaolo Rodola <g.rodola@gmail.com>2020-04-28 04:27:56 +0200
commit56db14e14797ac790094a7bd8865d63383fd93a7 (patch)
tree004a33a8cc6280ac3099b55c44b91ef9223d0d02
parentefe1cdb3b7177a0e65531cf9b099d28df9bc8271 (diff)
downloadpsutil-56db14e14797ac790094a7bd8865d63383fd93a7.tar.gz
show status() in __repr__
-rw-r--r--README.rst12
-rw-r--r--psutil/__init__.py30
-rwxr-xr-xpsutil/tests/test_misc.py2
3 files changed, 24 insertions, 20 deletions
diff --git a/README.rst b/README.rst
index 56b4017e..62ab3f23 100644
--- a/README.rst
+++ b/README.rst
@@ -327,7 +327,7 @@ Process management
>>>
>>> p = psutil.Process(7055)
>>> p
- psutil.Process(pid=7055, name='python', started='09:04:44')
+ psutil.Process(pid=7055, name='python3', status='running', started='09:04:44')
>>> p.name()
'python'
>>> p.exe()
@@ -342,15 +342,15 @@ Process management
>>> p.ppid()
7054
>>> p.children(recursive=True)
- [psutil.Process(pid=29835, name='python2.7', started='11:45:38'),
- psutil.Process(pid=29836, name='python2.7', started='11:43:39')]
+ [psutil.Process(pid=29835, name='python3', status='sleeping', started='11:45:38'),
+ psutil.Process(pid=29836, name='python3', status='waking', started='11:43:39')]
>>>
>>> p.parent()
- psutil.Process(pid=4699, name='bash', started='09:06:44')
+ psutil.Process(pid=4699, name='bash', status='sleeping', started='09:06:44')
>>> p.parents()
[psutil.Process(pid=4699, name='bash', started='09:06:44'),
- psutil.Process(pid=4689, name='gnome-terminal-server', started='0:06:44'),
- psutil.Process(pid=1, name='systemd', started='05:56:55')]
+ psutil.Process(pid=4689, name='gnome-terminal-server', status='sleeping', started='0:06:44'),
+ psutil.Process(pid=1, name='systemd', status='sleeping', started='05:56:55')]
>>>
>>> p.status()
'running'
diff --git a/psutil/__init__.py b/psutil/__init__.py
index 650fcf0f..028ab049 100644
--- a/psutil/__init__.py
+++ b/psutil/__init__.py
@@ -397,20 +397,22 @@ class Process(object):
except AttributeError:
info = {} # Python 2.6
info["pid"] = self.pid
- try:
- info["name"] = self.name()
- if self._create_time:
- info['started'] = _pprint_secs(self._create_time)
- except ZombieProcess:
- info["status"] = "zombie"
- except NoSuchProcess:
- info["status"] = "terminated"
- except AccessDenied:
- pass
- return "%s.%s(%s)" % (
- self.__class__.__module__,
- self.__class__.__name__,
- ", ".join(["%s=%r" % (k, v) for k, v in info.items()]))
+ with self.oneshot():
+ try:
+ info["name"] = self.name()
+ info["status"] = self.status()
+ if self._create_time:
+ info['started'] = _pprint_secs(self._create_time)
+ except ZombieProcess:
+ info["status"] = "zombie"
+ except NoSuchProcess:
+ info["status"] = "terminated"
+ except AccessDenied:
+ pass
+ return "%s.%s(%s)" % (
+ self.__class__.__module__,
+ self.__class__.__name__,
+ ", ".join(["%s=%r" % (k, v) for k, v in info.items()]))
__repr__ = __str__
diff --git a/psutil/tests/test_misc.py b/psutil/tests/test_misc.py
index 8ae7ea4d..18781e75 100755
--- a/psutil/tests/test_misc.py
+++ b/psutil/tests/test_misc.py
@@ -61,7 +61,9 @@ class TestMisc(unittest.TestCase):
self.assertIn("psutil.Process", r)
self.assertIn("pid=%s" % p.pid, r)
self.assertIn("name=", r)
+ self.assertIn("status=", r)
self.assertIn(p.name(), r)
+ self.assertIn("status='running'", r)
with mock.patch.object(psutil.Process, "name",
side_effect=psutil.ZombieProcess(os.getpid())):
p = psutil.Process()