htop 没有返回 CPU 或内存使用情况!?

htop 没有返回 CPU 或内存使用情况!?

我觉得顶部是一款出色的 Linux 系统监控应用程序。我非常喜欢它,但是顶部在 Mac 上看起来不太好。我知道 Mac 有一个系统监视器可以做到这一点,但我更喜欢使用终端。

我已经安装顶部通过运行:

brew install htop

它看起来是这样的:

PID USER     PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
    1 0          0   0     0     0     0 ?  0.0  0.0  0:00.00 (launchd)
   10 0          0   0     0     0     0 ?  0.0  0.0  0:00.00 (kextd)
   11 0          0   0     0     0     0 ?  0.0  0.0  0:00.00 (UserEventAgent)
   12 65         0   0     0     0     0 ?  0.0  0.0  0:00.00 (mDNSResponder)

问题是中央处理器记忆元件没有在我的系统上返回任何一个的真实值。

有其他人遇到过这种情况吗?或者有人能给我指明正确的方向吗?

答案1

我有同样的问题,所以我检查了食谱。

$ brew edit htop

然后我检查了菜谱的这一部分:

def caveats; <<-EOS.undent
    For htop to display correctly all running processes, it needs to run as root.
    If you don't want to `sudo htop` every time, change the owner and permissions:
    cd #{bin}
    chmod 6555 htop
    sudo chown root htop
EOS

只需输入sudo htop,你就会看到中央处理器记忆元件

答案2

根据我的酿造信息:

You can either run the program via `sudo` or set the setuid bit:

  sudo chown root:wheel /usr/local/Cellar/htop-osx/0.8.2.2/bin/htop

  sudo chmod u+s /usr/local/Cellar/htop-osx/0.8.2.2/bin/htop

这样做可以确保我不需要以 sudo 身份运行 htop

答案3

对于那些不想弄乱权限但又不想sudo htop只输入以下内容的人来说,这里有一个替代方法htop

  1. 使用 brew 安装:brew install htop
  2. 允许sudo htop无 sudo 密码运行
    1. 运行sudo visudo以在编辑器中打开 sudoers 文件
    2. 将其添加到配置文件:%admin ALL=(ALL) NOPASSWD: /usr/local/bin/htop
    3. 保存文件并退出(:wq最有可能)
  3. 将以下别名添加到您的 shell rc 文件(例如 for~/.bashrc~/.profile): alias htop='sudo htop'

答案4

chmod 6555 htop请注意,要使最新版本的 htop 在 OS X 上正常运行,仅用和来“祝福” htop 是不够的——虽然 htop 可以运行,但和sudo chown htop之间的输出会有所不同。htopsudo htop

下面是“blessed” htop 实例的屏幕截图,调用方式如下htop

在此处输入图片描述

下面是它运行的图片sudo htop

在此处输入图片描述

如您所见,非 sudo 调用htop显示的信息明显少得多。

@Sukima 给出了正确的答案;不幸的是,需要将别名改为htopsudo htop对于命令行用户来说,在提示符下输入密码是第二天性,我认为对于我们大多数人来说,htop问题在于忘记以 sudo 身份启动,而不是需要输入密码。我强烈建议不要允许在sudo htop没有密码提示的情况下运行,但如果你确实希望这样做,最好的方法是允许单个指定用户在没有密码的情况下启动 htop(并且只能启动 htop)(尽管这是一个巨大的漏洞,因为 htop 功能强大且可扩展并且可以运行外部命令,这意味着任何以 sudo 身份运行 htop 的人都可以做任何事情):

sudo visudo
# add the line below somewhere in the editor
YOURUSERNAME ALL=(ALL) NOPASSWD: /usr/local/bin/htop
# save and exit

相关内容