htop liefert keine CPU- oder Speicherauslastung zurück !?

80

Ich denke, dass Top eine großartige Anwendung ist, um ein Linux-System zu überwachen. Ich mag es wirklich, aber top sieht auf dem Mac nicht so gut aus. Ich weiß, dass Mac über einen Systemmonitor verfügt, bevorzuge jedoch die Verwendung eines Terminals.

Ich habe htop mit folgendem Befehl installiert :

brew install htop.

So sieht es aus:

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)

Das Problem ist, dass sowohl CPU als auch MEM nicht die tatsächlichen Werte von beiden auf meinem System zurückgeben.

Hat das noch jemand erlebt? Oder könnte mich jemand in die richtige Richtung weisen?

Yuan He
quelle

Antworten:

92

Ich habe das gleiche Problem, also überprüfe ich das Rezept.

$ brew edit htop

Dann überprüfe ich diesen Teil des Rezepts:

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

Also einfach tippen sudo htopund du wirst CPU und MEM sehen .

matiskay
quelle
18
Sie können verwenden brew info htop, um Vorsichtsmaßnahmen Inhalt zu sehen
AB
4
Dies ist auch für Benutzer hilfreich, die Macports installiert haben. Ich weiß nicht warum, aber es sudo htophat nicht funktioniert. htopinstalliert war /bin, also war ich cdda und rannte chmod 6555 htop && sudo chown root htop. Jetzt htopfunktioniert gut.
Brian McCutchon
1
@AB nicht mehr, sie haben es geändert.
Dalibor Filus
4
Mit dieser Lösung kann jeder Benutzer die Prozesse eines anderen Benutzers (oder des Stamms) beenden. Gibt es eine Möglichkeit, zuzulassen, dass htop CPU und MEM liest, ohne dass das System geändert werden kann?
Max
Wenn Sie htopdie Installation ändern möchten , verwenden Siechmod 6555 "$(which htop)"
BallpointBen am
20

Aus meiner Brauinfo:

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

Dies hat funktioniert, um sicherzustellen, dass ich htop nicht als sudo ausführen muss

Ivan Suftin
quelle
6

Hier ist eine Alternative für diejenigen , die nicht wollen , mit den Berechtigungen zum Dreck und noch vermeiden Eingabe sudo htopin dem Vorzug gerade htop:

  1. Installieren mit brauen: brew install htop
  2. Erlaube sudo htopes ohne sudo Passwort zu laufen
    1. Führen Sie aus sudo visudo, um die sudoers-Datei in einem Editor zu öffnen
    2. Fügen Sie dies zur Konfigurationsdatei hinzu: %admin ALL=(ALL) NOPASSWD: /usr/local/bin/htop
    3. Speichern Sie die Datei und beenden Sie ( :wqhöchstwahrscheinlich)
  3. Fügen Sie der Shell-RC-Datei den folgenden Alias ​​hinzu (Beispiel ist für ~/.bashrcoder ~/.profile): alias htop='sudo htop'
Sukima
quelle
0

Beachten Sie, dass es für die neuesten Versionen von htop unter OS X nicht ausreicht, htop mit chmod 6555 htopund zu "segnen". sudo chown htopWährend htop ausgeführt wird, unterscheidet sich die Ausgabe zwischen htopund sudo htop.

Hier ist ein Screenshot der "gesegneten" htop-Instanz, die aufgerufen wird als htop:

Bildbeschreibung hier eingeben

Und hier ist ein Bild davon sudo htop:

Bildbeschreibung hier eingeben

Wie Sie sehen, zeigt das nicht im Sudo aufgerufene htopProgramm deutlich weniger Informationen an.

Die richtige Antwort wurde von @Sukima präsentiert; es ist leider erforderlich, alias htopzu sudo htop. Für Befehlszeilenbenutzer ist das Eingeben des Kennworts an der Eingabeaufforderung eine Selbstverständlichkeit, und ich denke, für die meisten von uns ist es htopnicht erforderlich, das Kennwort als sudo zu starten, da dies das Problem ist, anstatt es eingeben zu müssen. Ich rate dringend davon ab, sudo htopdas Ausführen ohne Kennwortabfrage zuzulassen. Wenn Sie dies jedoch möchten, ist es am besten, einem einzelnen, benannten Benutzer zu gestatten, htop (und nur htop) ohne Kennwort zu starten (obwohl dies eine große Sicherheitsanfälligkeit darstellt) da htop mächtig und erweiterbar ist und externe Befehle ausführen kann, kann jeder, der htop als sudo ausführt, alles):

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