Cuando uso sudo iotop
(última versión 0.6-2.el7
) en una terminal en mi CentOS 7.5 recién instalado, recibo el siguiente mensaje de error:
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
¿Alguna idea para solucionar este problema?
Respuestas:
Aparentemente, las versiones recientes del kernel introdujeron una línea en blanco en la
/proc/(pid)/status
que iotop no espera:Como una aproximación cero de un arreglo, edite (como root)
/usr/lib/python2.7/site-packages/iotop/data.py
ca l.195:donde el
if not line.strip(): continue
es nuevo Tenga en cuenta que python no tiene llaves explícitas, por lo que la sangría de esta línea debe coincidir con la de la línea debajo de ella.(Consulte también https://bugs.launchpad.net/pkg-website/+bug/1773383 para obtener otras soluciones para este error).
fuente
if not entry.strip(): continue
antes para resolver ese problema. pythonhosted.org/PymplerSolo para complementar la respuesta aceptada (no se pudo agregar como comentario porque no permiten múltiples espacios en blanco)
Tenga cuidado y verifique que todo esté bien la primera vez que lo ejecute.
Para mis sistemas, es:
fuente