htop CPU ya da bellek kullanımı döndürmüyor!


80

Ben düşünüyorum üst bir Linux sistemi izlemek için harika bir uygulamadır. Gerçekten beğendim, ama üst Mac'te çok iyi görünmüyor. Mac'in bunu yapmak için bir sistem monitörü olduğunu biliyorum, ancak bir terminal kullanmayı tercih ediyorum.

Ben yüklemiş htop çalışan tarafından:

brew install htop.

İşte böyle görünüyor:

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)

Sorun hem olmasıdır işlemci ve MEM sistemimde ya gerçek değerlerini dönen değildir.

Bunu başkası yaşadı mı? Ya da bazıları beni doğru yöne işaret edebilir mi?

Yanıtlar:


92

Bende de aynı problem var, bu yüzden tarifi kontrol ediyorum.

$ brew edit htop

Sonra tarifin bu bölümünü kontrol ediyorum:

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

Yani sadece yazın sudo htopve CPU ve MEM göreceksiniz .


18
brew info htopUyarılar içeriğini görmek için kullanabilirsiniz
AB

4
Bu aynı zamanda macport yüklü olanlar için de yararlıdır; benim için nedenini bilmiyorum ama sudo htopişe yaramadı. htopkuruldu /bin, bu yüzden cdoradaydım ve koştum chmod 6555 htop && sudo chown root htop. Şimdi iyi htopçalışıyor.
Brian McCutchon

1
@AB artık değil, değiştirdiler.
Dalibor Filus

4
Bu çözüm, herhangi bir kullanıcının diğer (ya da root) işlemlerini öldürmesine izin verir. Sistemin değiştirilmesine izin vermeden htop'un CPU ve MEM'i okumasına izin vermenin bir yolu var mı ?
Max

Takıldığı htopher yerde değişiklik yapmak istiyorsanız , kullanınchmod 6555 "$(which htop)"
BallpointBen

20

Bira bilgimden:

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

Bu, hudo sudo olarak çalıştırmam gerekmediğinden emin olmak için çalıştı.


6

İşte izinleri ile uğraşmak istemeyen ve yine sudo htopde sadece tercih etmekten kaçınmak isteyenler için bir alternatif htop:

  1. Demlemek ile yükleyin: brew install htop
  2. sudo htopSudo şifresi olmadan çalışmasına izin ver
    1. sudo visudoSudoers dosyasını bir düzenleyicide açmak için çalıştırın
    2. Bunu config dosyasına ekleyin: %admin ALL=(ALL) NOPASSWD: /usr/local/bin/htop
    3. Dosyayı kaydedin ve çıkın ( :wqbüyük olasılıkla)
  3. Aşağıdaki komutu diğer adıyla kabuk rc dosyanıza ekleyin (örneğin ~/.bashrcveya içindir ~/.profile): alias htop='sudo htop'

0

Htop'un en son sürümlerinin OS X'te doğru çalışması için, chmod 6555 htopve ile "kutsama" yetmez. sudo chown htop- Htop çalışırken, çıkışın htopve arasında farklılık göstereceğini unutmayın sudo htop.

İşte olarak çağrılan "kutsanmış" bir htop örneğinin ekran görüntüsü htop:

görüntü tanımını buraya girin

ve işte çalışan bir resim sudo htop:

görüntü tanımını buraya girin

Gördüğünüz gibi, sudo olmayan çağrılan htopönemli ölçüde daha az bilgi görüntüler.

Doğru cevap @Sukima tarafından sunuldu; maalesef takma için gereklidir htopiçin sudo htop. Komut satırı kullanıcıları için, komut istemine parolayı yazmak ikinci bir özelliktir ve sanırım çoğumuz htopiçin parola yazmanız gerekmektense, sorun olan sudo olarak başlatmayı unutuyoruz . sudo htopParola istemi olmadan çalıştırılmasına izin vermemeyi şiddetle tavsiye ederim , ancak bunu yapmak istiyorsanız, en iyi yaklaşım, adlandırılmış bir kullanıcının parola olmadan atlama (veya yalnızca atlama) başlatmasına izin vermek (bu çok büyük bir güvenlik açığı olsa da) htop güçlü ve genişletilebilir olduğundan ve harici komutları çalıştırabildiğinden, sudo olarak çalışan herhangi bir şey yapabileceğini söyleyenler:

sudo visudo
# add the line below somewhere in the editor
YOURUSERNAME ALL=(ALL) NOPASSWD: /usr/local/bin/htop
# save and exit
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.