当前位置:首页 > 计算机相关 > ubuntu系统 > 正文内容

ubuntu16最新版本下iotop无法使用的解决办法

piikee6年前 (2018-05-31)ubuntu系统785
ubuntu16更新到最新版本,启动iotop出现如下错误:
Traceback (most recent call last):
File "/usr/sbin/iotop", line 17, in <module>
main()
File "/usr/lib/python2.7/dist-packages/iotop/ui.py", line 620, in main
main_loop()
File "/usr/lib/python2.7/dist-packages/iotop/ui.py", line 610, in <lambda>
main_loop = lambda: run_iotop(options)
File "/usr/lib/python2.7/dist-packages/iotop/ui.py", line 508, in run_iotop
return curses.wrapper(run_iotop_window, options)
File "/usr/lib/python2.7/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/lib/python2.7/dist-packages/iotop/ui.py", line 501, in run_iotop_window
ui.run()
File "/usr/lib/python2.7/dist-packages/iotop/ui.py", line 155, in run
self.process_list.duration)
File "/usr/lib/python2.7/dist-packages/iotop/ui.py", line 434, in refresh_display
lines = self.get_data()
File "/usr/lib/python2.7/dist-packages/iotop/ui.py", line 415, in get_data
return list(map(format, processes))
File "/usr/lib/python2.7/dist-packages/iotop/ui.py", line 388, in format
cmdline = p.get_cmdline()
File "/usr/lib/python2.7/dist-packages/iotop/data.py", line 292, in get_cmdline
proc_status = parse_proc_pid_status(self.pid)
File "/usr/lib/python2.7/dist-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

出错原因:新版本ubuntu16的status信息不一定都是:\t来分割信息的了。iotop还没更新过来,所以分割会出现有些信息分割出来只有一个key,没有value.目前iotop还没更新过来,所以临时解决办法就是跳过这些分割出来只有一列的信息。
 
解决办法:
vi /usr/lib/python2.7/dist-packages/iotop/data.py
找到196行,将:
[4个空格]try:
[8个空格]for line in open('/proc/%d/status' % pid):
[12个空格]key, value = line.split(':', 1)
[12个空格]result_dict[key] = value.strip()
[8个空格]except IOError:
[12个空格]pass # No such process

更改为:
[4个空格]try:
[8个空格]for line in open('/proc/%d/status' % pid):
[12个空格]try:
[16个空格]key, value = line.split(':', 1)
[12个空格]except:
[16个空格]break
[12个空格]result_dict[key] = value.strip()
[4个空格]except IOError:
[8个空格]pass # No such process

注意python是以空格作为标识的,注意每行前面的空格数量。

扫描二维码推送至手机访问。

版权声明:本文由萍客小居发布,如需转载请注明出处。

本文链接:https://www.piikee.net/1323.html

分享给朋友:

相关文章

ubuntu14.04 解压rar和7z文件问题

rar问题apt-get   install  unrar   这是安装rar格式文件的解压apt-get   install  rar        这是安装rar文件的压缩接下来是如何使用,你可以直接输入rar  --help 会有很...

(In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))

 (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))的解决办法。在ubuntu系统中,想umount...

vi编辑器删除第一行到当前光标位置的命令

vi编辑器删除第一行到当前光标位置的命令为:1,.d其中1表示从第一行开始,逗号是分隔符,.表示当前行,也可以输入3表示第三行,d表示删除。...

ubuntu升级内核的方法(命令行升级ubuntu的内核)

sudo apt-get install linux-generic-lts-xenial linux-image-generic-lts-xenial一路y下去,最后reboot重启。重启完uname -a就可以看到新内核版本了。...

ubuntu下设置iptables方法

# whereis iptables #查看系统是否安装防火墙可以看到:iptables: /sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz #表示已经...

ubuntu下vi编辑器左右方向出错,删除和i键出错的解决办法

其实是ubuntu下vi编辑器是简单版本导致的,可以apt-get update,然后apt-get upgrade更新一下系统包。然后 apt-get install vim-full 安装全功能版本的vim编辑器。这样子就不会发生向右键...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。