diff options
| -rwxr-xr-x | tools/kvm/kvm_stat/kvm_stat | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/tools/kvm/kvm_stat/kvm_stat b/tools/kvm/kvm_stat/kvm_stat index b9e8d0def1ab..7c92545931e3 100755 --- a/tools/kvm/kvm_stat/kvm_stat +++ b/tools/kvm/kvm_stat/kvm_stat | |||
| @@ -1170,6 +1170,9 @@ class Tui(object): | |||
| 1170 | 1170 | ||
| 1171 | return sorted_items | 1171 | return sorted_items |
| 1172 | 1172 | ||
| 1173 | if not self._is_running_guest(self.stats.pid_filter): | ||
| 1174 | # leave final data on screen | ||
| 1175 | return | ||
| 1173 | row = 3 | 1176 | row = 3 |
| 1174 | self.screen.move(row, 0) | 1177 | self.screen.move(row, 0) |
| 1175 | self.screen.clrtobot() | 1178 | self.screen.clrtobot() |
| @@ -1327,6 +1330,12 @@ class Tui(object): | |||
| 1327 | msg = '"' + str(val) + '": Invalid value' | 1330 | msg = '"' + str(val) + '": Invalid value' |
| 1328 | self._refresh_header() | 1331 | self._refresh_header() |
| 1329 | 1332 | ||
| 1333 | def _is_running_guest(self, pid): | ||
| 1334 | """Check if pid is still a running process.""" | ||
| 1335 | if not pid: | ||
| 1336 | return True | ||
| 1337 | return os.path.isdir(os.path.join('/proc/', str(pid))) | ||
| 1338 | |||
| 1330 | def _show_vm_selection_by_guest(self): | 1339 | def _show_vm_selection_by_guest(self): |
| 1331 | """Draws guest selection mask. | 1340 | """Draws guest selection mask. |
| 1332 | 1341 | ||
| @@ -1354,7 +1363,7 @@ class Tui(object): | |||
| 1354 | if not guest or guest == '0': | 1363 | if not guest or guest == '0': |
| 1355 | break | 1364 | break |
| 1356 | if guest.isdigit(): | 1365 | if guest.isdigit(): |
| 1357 | if not os.path.isdir(os.path.join('/proc/', guest)): | 1366 | if not self._is_running_guest(guest): |
| 1358 | msg = '"' + guest + '": Not a running process' | 1367 | msg = '"' + guest + '": Not a running process' |
| 1359 | continue | 1368 | continue |
| 1360 | pid = int(guest) | 1369 | pid = int(guest) |
