top命令报错 “TERM environment variable not set.”

今天在设备中指令top命令出错;

/mnt/sdcard # cd ..
/ # top
TERM environment variable not set.
/ # top
TERM environment variable not set.

网上给了一个解决方案:

[root@localhost ~]# docker exec -ti redis /bin/bash
[root@9bf53a30e849 /]# top
TERM environment variable not set.
[root@9bf53a30e849 /]# echo $TERM
dumb
[root@9bf53a30e849 /]# export TERM=dumb
[root@9bf53a30e849 /]# top             
top - 11:14:13 up 85 days, 20:18,  0 users,  load average: 8.75, 8.61, 8.53
Tasks:  28 total,   1 running,  27 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.7 us,  0.3 sy, 12.5 ni, 85.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 13175309+total, 10896009+free,  9802708 used, 12990288 buff/cache
KiB Swap:  4194300 total,  4194300 free,        0 used. 11734181+avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                            
     1 root      20   0   11604   1364   1164 S   0.0  0.0   1:04.54 run.sh                                                                                                                             
    11 nagios    20   0   44212   1352    804 S   0.0  0.0   5:50.39 nrpe                                                                                                                               
   126 root      20   0   22720   1308    700 S   0.0  0.0   0:38.39 crond                                                                                                                              
   128 root      20   0   82488   3484   2640 S   0.0  0.0   0:00.00 sshd                                                                                                                               
   129 root      20   0  322668   2096   1792 S   0.0  0.0 115:39.77 LiveDistribute.                                                                                                                    
   130 root      20   0  322668   1924   1736 S   0.0  0.0 116:06.00 LiveDistribute.                                                                                                                    
   131 root      20   0  322668   2080   1736 S   0.0  0.0 116:44.28 LiveDistribute.                                                                                                                    
   132 root      20   0  322668   1932   1736 S   0.0  0.0 113:00.33 LiveDistribute.                                                                                                                    
   133 root      20   0  322668   1912   1736 S   0.0  0.0 111:23.64 LiveDistribute.                                                                                                                    
   134 root      20   0  257132   2064   1724 S   0.0  0.0  11:13.00 LiveDistribute.                                                                                                                    
   135 root      20   0  257132   2060   1724 S   0.0  0.0  11:30.31 LiveDistribute.                                                                                                                    
   136 root      20   0  257132   2064   1724 S   0.0  0.0  11:12.71 LiveDistribute.                                                                                                                    
   137 root      20   0  257132   4100   1724 S   0.0  0.0  11:25.46 LiveDistribute.                                                                                                                    

但是在我的设备上失败了:

/ # top
TERM environment variable not set.
/ # echo $TERM

/ # echo $TERM

解决方法:
在运行top时加上 -b参数。或者直接重启也可以。

研发给了另一种方案是用ssh ,用htop。
我这边直接用usb线adb调试报错:

/ # htop
Error opening terminal: unknown.
/ # 

解决方法:
在调用的报错程序前,先设置环境变量:export TERM=xterm

/ # export TERM=xterm
/ # htop

测试可用!!

网上摘要比较

htop 和经典之间的比较 top
1、htop您可以垂直和水平滚动列表以查看所有进程和完整的命令行。
2、top每按一次未分配的键都会有一个延迟(特别是当意外触发多键转义序列时很烦人)。
3、htop启动速度更快(top似乎在显示任何内容之前会收集一段时间)。
4、htop无需键入进程号即可终止进程。
5、htop无需键入进程号或优先级值即可取消某个进程。
6、在htop你可以一次杀死多个进程。
6、top 较旧,因此需要更多测试

我使用发现使用htop时,ctrl+c掉之后,终端不能保存记录,这个很蛋疼,只能重定向到文本查看记录,文本查看还大概率乱码,cat 查看iTerm 开始出BUG。

`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J@`J
(base) ➜  tmp `?;`?;`?;`?;`?;`?;`?;`?;`?;`?;`?;`?;`?;`?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;a?;aK6aK6aK6aK6aK6aK6aK6aK6aK6aK6 S7#S7
(base) ➜  tmp
(base) ➜  tmp  /*#$&a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2(base) ➜  tmp  /*#$&a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a(base) ➜  tmp  /*#$&a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2+a2

只能重启终端恢复。目前看实时查看可以用htop,脚本测试及记录数据继续用top。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。