root账户下top有异常:输错了进程号后无法删除修改

问题:

某天突然发现root账户下top有异常:

在top命令中,当按下k键后,后面可以输入进程号来删除,但是发现在root用户下输错了进程号后无法删除修改,backspace键不起作用,但是普通用户下就能用backspace键删除。


In the top command, when you press the k key, you can enter a process number to kill it. However, it was found that after entering the wrong process number under the root user, it was impossible to delete or modify it. The backspace key did not work, but it was possible to use the backspace key to delete it under a normal user.

普通账户就没有问题。在xfce4下的终端里也没有问题,只有在TTy的root账户下才有问题。ssh登录过去再su - root ,也没有问题。

查找问题:

% which top
/usr/bin/top
% ls -l /usr/bin/top
-r-xr-xr-x  1 root  wheel  73408  4月  7  2023 /usr/bin/top

没看出啥问题....

 

 文心的回答

在 top 命令中,当你按下 k 键后,top 进入了一个交互式模式,允许你输入一个进程的 PID 来发送信号给它。然而,在某些终端或 top 的版本中,直接在这个交互模式下使用退格键(Backspace)可能不会像你期望的那样工作,来删除已输入的 PID 数字。

这种情况通常是由于 top 命令或其使用的终端库对退格键的处理方式不同造成的。以下是一些可能的解决方案:

  1. 使用其他键删除
    • 尝试使用 Ctrl + h 组合键,这在某些系统中是退格键的替代。
    • 或者,你可以使用 Ctrl + w 来删除整个单词(如果 top 支持这种快捷键)。
    • 另外,你可以使用 Ctrl + u 来删除整行输入。
  2. 配置终端
    • 确保你的终端配置正确,特别是关于退格键的设置。
    • 你可以检查并编辑你的 ~/.bashrc~/.bash_profile~/.inputrc 或其他相关的配置文件,看是否有关于退格键的设置。
  3. 使用其他工具
    • 如果你经常需要向进程发送信号,并且 top 的交互模式不满足你的需求,你可以考虑使用 pkillkillall 或其他类似的工具。
  4. 更新或重新编译 top
    • 如果问题是由于 top 的一个已知问题或bug引起的,尝试更新到最新版本可能会解决问题。
    • 如果你有能力并且愿意,你也可以从源代码重新编译 top,并查看是否有相关的编译选项或补丁可以解决这个问题。
  5. 使用不同的终端模拟器
    • 有时,问题可能与特定的终端模拟器有关。尝试使用另一个终端模拟器(如 GNOME Terminal、Konsole、xterm 等)来看看问题是否仍然存在。
  6. 查看 top 的文档或帮助
    • 使用 man top 命令查看 top 的手册页,看是否有关于这个问题的说明或建议。

记住,具体的解决方案可能取决于你的系统配置、终端设置和 top 的版本。

暂时还没找到问题原因..... 

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值