htop не повертає процесор або використання пам'яті !?


80

Я думаю, що top - чудове додаток для моніторингу системи Linux. Мені це дуже подобається, але топ не так добре виглядає на Mac. Я знаю, що у Mac є системний монітор для цього, але я вважаю за краще використовувати термінал.

Я встановив htop , запустивши:

brew install htop.

Ось як це виглядає:

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)

Проблема полягає в тому, що і CPU, і MEM не повертають реальних значень в моїй системі.

Хтось ще переживав це? Або міг би хтось вказати мене в правильному напрямку?

Відповіді:


92

У мене така ж проблема, тому я перевіряю рецепт.

$ brew edit htop

Потім я перевіряю цю частину рецепту:

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

Тому просто введіть sudo htopі ви побачите процесор і MEM .


18
Ви можете використовувати brew info htopперегляд вмісту застережень
AB

4
Це корисно і тим, хто встановив макпорти; для мене я не знаю чому, але sudo htopне працювало. htopбув встановлений /bin, так що я cdтам і біг chmod 6555 htop && sudo chown root htop. Зараз htopпрекрасно працює.
Брайан Маккотчон

1
@AB вже не вони змінили.
Далібор Філус

4
Це рішення дозволяє будь-якому користувачеві знищувати процеси будь-якого іншого користувача (або кореня). Чи є спосіб дозволити htop читати процесор і MEM, не дозволяючи йому змінювати систему?
Макс

Якщо ви хочете змінити місце, htopде воно встановлено, використовуйтеchmod 6555 "$(which htop)"
BallpointBen

20

З моєї інформації про заварювання:

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

Це спрацювало на тому, що мені не потрібно запускати htop як sudo


6

Ось альтернатива для тих, хто не хоче збиватися з дозволів і все-таки уникати набору тексту, sudo htopа не htop:

  1. Встановити заваркою: brew install htop
  2. Дозволити sudo htopпрацювати без пароля sudo
    1. Запустіть, sudo visudoщоб відкрити файл sudoers у редакторі
    2. Додайте це до конфігураційного файлу: %admin ALL=(ALL) NOPASSWD: /usr/local/bin/htop
    3. Збережіть файл та вийдіть ( :wqшвидше за все)
  3. Додайте наступний псевдонім до файлу rc оболонки (наприклад, для ~/.bashrcабо ~/.profile): alias htop='sudo htop'

0

Зауважте, що для останніх версій htop, щоб правильно функціонувати на OS X, недостатньо "благословити" htop за допомогою chmod 6555 htopі sudo chown htop- поки htop буде працювати, вихід буде відрізнятися між htopі sudo htop.

Ось скріншот "блаженного" екземпляра htop, який викликається як htop:

введіть тут опис зображення

і ось його малюнок працює як sudo htop:

введіть тут опис зображення

Як бачимо, не-викликаний судо htopвідображає значно менше інформації.

Правильну відповідь представив @Sukima; він , до жаль , потрібно псевдонім htopдля sudo htop. Для користувачів командного рядка введення пароля у відповідь другого характеру, і я думаю, що для більшості з нас він забуває запускати htopяк sudo, що є проблемою, а не вимагати введення пароля. Я настійно раджу sudo htopзабороняти запускати без запрошення пароля, але якщо ви цього хочете, найкращим підходом є дозволити одному користувачеві, названому користувачем, запускати htop (і тільки htop) без пароля (хоча це величезна вразливість Оскільки htop є потужним і розширюваним, він може виконувати зовнішні команди, а це означає, що той, хто запускає htop як sudo, може робити що завгодно):

sudo visudo
# add the line below somewhere in the editor
YOURUSERNAME ALL=(ALL) NOPASSWD: /usr/local/bin/htop
# save and exit
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.