Lorsque j'utilise sudo iotop
(dernière version 0.6-2.el7
) dans un terminal de mon CentOS 7.5 nouvellement installé, j'obtiens le message d'erreur suivant:
Traceback (most recent call last):
File "/sbin/iotop", line 17, in <module>
main()
File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 620, in main
main_loop()
File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 610, in <lambda>
main_loop = lambda: run_iotop(options)
File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 508, in run_iotop
return curses.wrapper(run_iotop_window, options)
File "/usr/lib64/python2.7/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 501, in run_iotop_window
ui.run()
File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 155, in run
self.process_list.duration)
File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 434, in refresh_display
lines = self.get_data()
File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 415, in get_data
return list(map(format, processes))
File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 388, in format
cmdline = p.get_cmdline()
File "/usr/lib/python2.7/site-packages/iotop/data.py", line 292, in get_cmdline
proc_status = parse_proc_pid_status(self.pid)
File "/usr/lib/python2.7/site-packages/iotop/data.py", line 196, in parse_proc_pid_status
key, value = line.split(':\t', 1)
ValueError: need more than 1 value to unpack
Une idée comment résoudre ce problème?
Réponses:
Apparemment, les versions récentes du noyau ont introduit une ligne vierge dans
/proc/(pid)/status
laquelle iotop ne s'attend pas:En tant qu'approximation zéro d'un correctif, éditez (en tant que root)
/usr/lib/python2.7/site-packages/iotop/data.py
ca l.195:où le
if not line.strip(): continue
est nouveau. Attention, python n'a pas d'accolades explicites, donc l'indentation de cette ligne doit correspondre à celle de la ligne en dessous.(Voir également https://bugs.launchpad.net/pkg-website/+bug/1773383 pour d'autres correctifs pour ce bogue.)
la source
if not entry.strip(): continue
avant pour résoudre ce problème. pythonhosted.org/PymplerJuste pour compléter la réponse acceptée (impossible d'ajouter en tant que commentaire car ils n'autorisent pas plusieurs espaces blancs)
Soyez prudent et vérifiez que tout va bien la première fois que vous l'exécutez.
Pour mes systèmes, c'est:
la source