htop运行卡住不显示没输出

今天在使用hop的时候,刚开始还可以正常显示,但Kill了一个图形程序进程后就不能正常使用了,表现为运行htop后直接卡住了。

1.检查是程序问题还是输出问题

htop > htop_dump.txt

查看,内容可以正常输出,说明只是显示的问题

2.使用strace检查卡在哪一步上

strace -o htop_strace.log -s 2000 htop

log显示原因为:

socket(PF_FILE, SOCK_STREAM, 0)         = 4
connect(4, {sa_family=AF_FILE, path="/dev/gpmctl"...}, 13) = ? ERESTARTSYS (To be restarted)
--- SIGINT (Interrupt) @ 0 (0) ---
rt_sigaction(SIGINT, {0x1, [], SA_RESTORER, 0x3fc0c302d0}, NULL, 8) = 0

正常的时候应该是:

connect(4, {sa_family=AF_FILE, path="/dev/gpmctl"...}, 13) = 0
write(4, "\f\0\363\376\0\0\316\377OD\0\0\0\0\0\0", 16) = 16

学习到使用strace来检查程序运行时系统调用出现的问题。

NAME
       strace - trace system calls and signals

SYNOPSIS
       strace  [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] ...  [ -ofile ] [ -ppid ] ...  [ -sstrsize ] [ -uusername ] [ -Evar=val ] ...  [ -Evar ] ...  [
       command [ arg ...  ] ]

       strace -c [ -eexpr ] ...  [ -Ooverhead ] [ -Ssortby ] [ command [ arg ...  ] ]

3.重启gpm

gpm是用来控制虚拟鼠标的

service gpm restart

你可能感兴趣的:(htop运行卡住不显示没输出)