¿htop no devuelve el uso de CPU o memoria?

80

Creo que top es una gran aplicación para monitorear un sistema Linux. Realmente me gusta, pero la parte superior no se ve tan bien en Mac. Sé que Mac tiene un monitor de sistema para hacerlo, pero prefiero usar un terminal.

He instalado htop ejecutando:

brew install htop.

Así es como se ve:

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)

El problema es que tanto la CPU como el MEM no están devolviendo los valores reales de ninguno de mis sistemas.

Alguien más ha experimentado esto? O, ¿alguien podría señalarme en la dirección correcta?

Yuan He
fuente

Respuestas:

92

Tengo el mismo problema, así que reviso la receta.

$ brew edit htop

Luego reviso esta parte de la receta:

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

Tan solo escriba sudo htopy verá CPU y MEM .

matiskay
fuente
18
Puede usar brew info htoppara ver el contenido de las advertencias
AB
44
Esto es útil para aquellos que también instalaron con macports; para mí, no sé por qué, pero sudo htopno funcionó. htopfue instalado en /bin, así que estaba cdallí y corrí chmod 6555 htop && sudo chown root htop. Ahora htopfunciona bien.
Brian McCutchon
1
@AB ya no, lo cambiaron.
Dalibor Filus
44
Esta solución permite que cualquier usuario elimine los procesos de cualquier otro usuario (o raíz). ¿Hay alguna manera de permitir que htop lea CPU y MEM sin permitir que modifique el sistema?
Max
Si desea modificar htopdonde sea que esté instalado, usechmod 6555 "$(which htop)"
BallpointBen
20

De mi información de preparación:

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

Esto funcionó para garantizar que no necesito ejecutar htop como sudo

Ivan Suftin
fuente
6

Aquí hay una alternativa para aquellos que no quieren perder el tiempo con los permisos y aún así evitan escribir sudo htopcon preferencia htop:

  1. Instalar con cerveza: brew install htop
  2. Permitir sudo htopcorrer sin contraseña sudo
    1. Ejecutar sudo visudopara abrir el archivo sudoers en un editor
    2. Agregue esto al archivo de configuración: %admin ALL=(ALL) NOPASSWD: /usr/local/bin/htop
    3. Guarde el archivo y salga (lo :wqmás probable)
  3. Agregue el siguiente alias a su archivo rc de shell (ejemplo es para ~/.bashrco ~/.profile): alias htop='sudo htop'
Sukima
fuente
0

Tenga en cuenta que para que las últimas versiones de htop funcionen correctamente en OS X, no es suficiente "bendecir" htop con chmod 6555 htopy sudo chown htop- mientras htop se ejecutará, la salida será diferente entre htopy sudo htop.

Aquí hay una captura de pantalla de la instancia htop "bendecida", invocada como htop:

ingrese la descripción de la imagen aquí

y aquí hay una foto que se ejecuta como sudo htop:

ingrese la descripción de la imagen aquí

Como puede ver, el no invocado por sudo htopmuestra significativamente menos información.

La respuesta correcta fue presentada por @Sukima; desafortunadamente se requiere alias htoppara sudo htop. Para los usuarios de la línea de comandos, escribir la contraseña en el indicador es una segunda naturaleza y creo que para la mayoría de nosotros, olvidar el lanzamiento htopcomo sudo es el problema en lugar de tener que escribir la contraseña. Le recomiendo no permitir sudo htopque se ejecute sin una solicitud de contraseña, pero si lo desea, el mejor enfoque es permitir que un solo usuario con nombre inicie htop (y solo htop) sin contraseña (aunque esta es una gran vulnerabilidad ya que htop es potente y extensible y puede ejecutar comandos externos, lo que significa que quien ejecuta htop como sudo puede hacer cualquier cosa):

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