Запуск команд оболочки с оригинальным отображением - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь вывести вывод htop на свой сервер в виде просматриваемой страницы HTML, чтобы я мог легко проверить ее. Я уже выполнил экспорт в HTML часть (используя echo q | htop | aha --black --line-fix). Это прекрасно работает, когда я использую его в интерактивном режиме, и теперь мне нужно было подключить его к веб-порталу. Моя настройка PHP, и я использую exec() и shell_exec(), чтобы попытаться отобразить вывод. Тем не менее, вывод пуст. Я подозреваю, что это потому, что нет отображения, о котором знает htop, поэтому у него нет возможности узнать, что представляет собой правильный размер для отображения. Итак, мой вопрос, есть ли способ сообщить универсальному c сценарию процесса / оболочки, что он может использовать образное отображение с указанными размерами?

1 Ответ

0 голосов
/ 11 марта 2020

Я понял. Самый простой способ сделать это - больше не использовать htop. Автор сказал , что htop предполагается использовать в интерактивном режиме, и что нет простого способа получить его результат. Еще один инструмент мониторинга со встроенным режимом веб-сервера - glances , и вы можете сделать что-то вроде glances -w, и все готово.

Однако, если вы действительно хотите сделать htop тогда я понял это. Простейший рабочий код:

echo shell_exec("export TERM=xterm-color;echo q | htop | aha --black --line-fix");

Более настраиваемый рабочий код:

exec("rm /var/www/html/abc");
exec("export TERM=xterm-color;echo Hthq | htop | aha --black --line-fix > /var/www/html/abc");
echo shell_exec("cat /var/www/html/abc | head -n 10");
echo shell_exec("cat /var/www/html/abc | tail -n 25");

Это позволяет изменять параметры в части echo Hthq. Финальный hq открывает меню справки htop, а затем закрывает его, заставляя htop перерисовывать все. Биты head и tail будут вырезать правильные сегменты. Все ранее (например, Ht, который скрывает потоки и отображение дерева) вы можете настроить.

...