htop não está retornando CPU ou uso de memória !?

79

Eu acho que top é ótimo aplicativo para monitorar um sistema Linux. Eu realmente gosto, mas o top não parece tão bom no Mac. Eu sei que o Mac tem um monitor de sistema para fazer isso, mas eu prefiro usar um terminal.

Eu instalei o htop executando:

brew install htop .

Aqui está o que parece:

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)

O problema é que a CPU e MEM não estão retornando os valores reais do meu sistema.

Alguém mais experimentou isso? Ou, alguém poderia me apontar na direção certa?

    
por Yuan He 22.09.2011 / 17:54

4 respostas

93

Eu tenho o mesmo problema, então eu verifico a receita.

$ brew edit htop

Então eu verifico esta parte da receita:

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

Então, basta digitar sudo htop e você verá CPU e MEM .

    
por 01.01.2012 / 01:34
19

De minhas informações de bebida:

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

Isso funcionou para garantir que eu não precise executar o htop como sudo

    
por 05.11.2014 / 16:52
6

Aqui está uma alternativa para quem não quer se importar com as permissões e ainda assim evitar digitar sudo htop em preferência a apenas htop :

  1. Instalar com brew: brew install htop
  2. Permitir que sudo htop seja executado sem a senha sudo
    1. Execute sudo visudo para abrir o arquivo sudoers em um editor
    2. Adicione isto ao arquivo de configuração: %admin ALL=(ALL) NOPASSWD: /usr/local/bin/htop
    3. Salve o arquivo e saia ( :wq provavelmente)
  3. Adicione o seguinte alias ao seu arquivo shell rc (por exemplo, ~/.bashrc ou ~/.profile ): alias htop='sudo htop'
por 03.07.2015 / 00:58
0

Observe que, para as versões mais recentes do htop funcionarem corretamente no OS X, não é suficiente "abençoar" o htop com chmod 6555 htop e sudo chown htop - enquanto o htop for executado, a saída será diferente entre htop e sudo htop .

Aqui está uma captura de tela da instância htop "abençoada", chamada como htop :

eaquiestáumafotodelaemexecuçãocomosudohtop:

Como você pode ver, o htop não-sudo-invocado exibe significativamente menos informações.

A resposta correta foi apresentada por @Sukima; infelizmente é necessário alias htop to sudo htop . Para usuários de linha de comando, digitar a senha no prompt é de segunda natureza e acho que para a maioria de nós é esquecer de lançar htop como sudo, que é o problema, em vez de ser necessário digitar a senha. É altamente recomendável não permitir que sudo htop seja executado sem um prompt de senha, mas se você desejar, a melhor abordagem é permitir que um único usuário nomeado inicie o htop (e apenas htop) sem uma senha (embora isso seja uma enorme vulnerabilidade já que o htop é poderoso e extensível e pode executar comandos externos, o que significa que quem quer que o execute como sudo pode fazer qualquer coisa):

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