htop non restituisce l'utilizzo della CPU o della memoria !?


80

Penso che top sia un'ottima applicazione per monitorare un sistema Linux. Mi piace davvero tanto, ma il top non sembra così bello su Mac. So che Mac ha un monitor di sistema per farlo, ma preferisco usare un terminale.

Ho installato htop eseguendo:

brew install htop.

Ecco come appare:

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)

Il problema è che sia CPU che MEM non stanno restituendo i valori reali di nessuno dei due sul mio sistema.

Qualcun altro ha sperimentato questo? Oppure qualcuno potrebbe indicarmi la giusta direzione?

Risposte:


92

Ho lo stesso problema, quindi controllo la ricetta.

$ brew edit htop

Quindi controllo questa parte della ricetta:

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

Quindi basta digitare sudo htope vedrai CPU e MEM .


18
È possibile utilizzare brew info htopper visualizzare il contenuto delle avvertenze
AB

4
Questo è utile anche per coloro che hanno installato con macports; per me, non so perché, ma sudo htopnon ha funzionato. htopè stato installato /bin, quindi ero cdlì e ho funzionato chmod 6555 htop && sudo chown root htop. Ora htopfunziona bene.
Brian McCutchon,

1
@AB non più, l'hanno cambiato.
Dalibor Filus,

4
Questa soluzione consente a qualsiasi utente di uccidere i processi di qualsiasi altro utente (o root). C'è un modo per consentire a htop di leggere CPU e MEM senza permettergli di modificare il sistema?
Max

Se si desidera modificare htopovunque sia installato, utilizzarechmod 6555 "$(which htop)"
BallpointBen il

20

Dalle mie informazioni sulla birra:

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

Questo ha funzionato per garantire che non avessi bisogno di eseguire htop come sudo


6

Ecco un'alternativa per coloro che non vogliono confondere con i permessi ed evitare comunque di digitare le sudo htoppreferenze solo per htop:

  1. Installa con brew: brew install htop
  2. Consentire sudo htopl'esecuzione senza password sudo
    1. Esegui sudo visudoper aprire il file sudoers in un editor
    2. Aggiungi questo al file di configurazione: %admin ALL=(ALL) NOPASSWD: /usr/local/bin/htop
    3. Salva il file ed esci ( :wqmolto probabilmente)
  3. Aggiungi il seguente alias al tuo file rc della shell (l'esempio è per ~/.bashrco ~/.profile): alias htop='sudo htop'

0

Si noti che per le ultime versioni di htop per funzionare correttamente su OS X, non è sufficiente "benedire" htop con chmod 6555 htope sudo chown htop- mentre htop funzionerà, l'output differirà tra htope sudo htop.

Ecco uno screenshot dell'istanza htop "benedetta", invocata come htop:

inserisci qui la descrizione dell'immagine

ed ecco una sua foto in esecuzione come sudo htop:

inserisci qui la descrizione dell'immagine

Come puoi vedere, il non-sudo-invocato htopvisualizza significativamente meno informazioni.

La risposta corretta è stata presentata da @Sukima; purtroppo è necessario alias htopa sudo htop. Per gli utenti della riga di comando, digitare la password al prompt è di seconda natura e penso che per la maggior parte di noi si htopstia dimenticando di lanciarsi come sudo che è il problema piuttosto che essere obbligato a digitare la password. Consiglio vivamente di non consentire sudo htopl'esecuzione senza una richiesta di password, ma se lo si desidera, l'approccio migliore è consentire a un singolo utente nominato di avviare htop (e solo htop) senza password (sebbene si tratti di un'enorme vulnerabilità poiché htop è potente ed estensibile e può eseguire comandi esterni, il che significa che chiunque esegue htop come sudo può fare qualsiasi cosa):

sudo visudo
# add the line below somewhere in the editor
YOURUSERNAME ALL=(ALL) NOPASSWD: /usr/local/bin/htop
# save and exit
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.