htop дает пустой экран

Другие уже объяснили, что сделать. Позвольте мне объяснить, что происходит здесь: символ вертикальной черты | не делает конвейер, поскольку переменная расширена, но действует как буквенный символ. Поэтому find выполняется со следующими аргументами:

{"/path/to/webpage", "-type", "f", "|", "grep", "-v", ".svn", "|", ...}

и это интерпретирует | как путь и жалуется, что это должно было появиться перед выражением (-type f).

Другая большая ошибка состоит в том, что Вы используете `$cmd` как единственная командная строка. Если $cmd (т.е. find ...) за которым следуют и произведенный вывод как rm -rf /, это было бы выполнено от Вашего имени. Всегда берите осторожность, когда Вы возьмете данные в качестве кода!

Улучшение 1. find ... | grep -v ... плохой путь состоит в том, чтобы исключить что-то из вывода: find пересечет целые названные подкаталоги .svn, продолжите линии, только чтобы быть выброшенными позже. Почему бы не сказать find сделать это непосредственно?

find path -type f | grep -v .svn                # don't do this
find path -name .svn -prune -o -type f -print   # do this instead

Улучшение 2. При объединении find и xargs, всегда используйте -print0 в find и -0 в xargs:

find path ... -print0 | xargs -0 -r grep ...    # I'd also recommend -r

или можно сделать это полностью в grep:

grep --recursive --exclude-dir=.svn pattern path
3
04.02.2014, 03:59
2 ответа

Проблема или с Вашей установкой дисплея или htop самостоятельно. Для устранения этого, это - проблема с htop можно ли попытаться перенаправить его вывод в файл?

$ htop > htop_dump.txt

После выполнения этого затем поразил Ctrl+C. Если существует содержание в файле, more htop_dump.txt, затем проблема, вероятно, находится с Вашей экранной установкой в Вашем терминале/оболочке.

Если на otherhand этот файл также ничего не показывает, то что-то повреждается в установке Вашей системы, любом с библиотекой это htop зависит от, или htop сам двоичный файл.

Вы могли бы также хотеть попытаться работать strace видеть, существует ли ресурс/конфигурационный файл это htop сдерживается это поливает из шланга, это - дисплей. Что-то вроде этого:

$ strace -o htop_strace.log -s 2000 htop
4
27.01.2020, 21:20
  • 1
    @Kokizzu - Хорошо, таким образом, это - проблема с Вашим терминалом/оболочкой затем (на основе того теста). Вы видели, существует ли некоторая случайная команда из файлов конфигурации Вашей оболочки, вызывающих проблему путем открытия "чистой" оболочки, bash --noprofile --norc. –  slm♦ 03.02.2014, 16:16
  • 2
    @Kokizzu - просто видел вывод strace, да который не выглядит правильным вообще. Это держится read(... в выводе strace? –  slm♦ 03.02.2014, 16:19
  • 3
    @Kokizzu - Я думаю, что был бы очень подозрителен затем к некоторой форме повреждения в моей системе. Отказы диска и/или более низкий файл уровня, возможно, были повреждены. htop надеется читать, почти просто зависает на нем. –  slm♦ 03.02.2014, 17:10
  • 4
    @Kokizzu - определение походит на аппаратную проблему мне. У меня было Ядро Fedora 3 системы некоторое время назад, которые казались прекрасными, пока я не пытался получить доступ к подкаталогу под/var/lib. Затем это зависло бы, и я не мог уничтожить процессы, получающие доступ к этому каталогу. Оказавшийся провальный жесткий диск. хром –  slm♦ 04.02.2014, 03:53
  • 5
    был проблемой (pid 12366), после перезапуска htop хорошо работает ^^; я отмечу это, как решено, спасибо за предложение для использования strace для обнаружения проблемы –  Kokizzu 04.02.2014, 03:58

Я использовал " /usr/bin/konsole ". Для этого переменная $TERM была установлена ​​в «Linux».
htop не работал в этом случае.

Когда htop вызывался из "/usr/bin/gnome -терминал" , он работал нормально, в этом случае для переменной $TERM было установлено значение "xterm".
Поэтому, когда я изменил $TERM на «xterm» с «Linux» на «konsole», это сработало.

Работа :Linux {hostName} 2.6.32 -754.6.3.el6.x86 _64 #1 SMP Вт 9 окт 17 :27 :49 UTC 2018 x86 _64 x86 _64 x86 _64 GNU/Linux

При сбое htop $XTERM был установлен на «Linux», последние строки в моей строке были следующими (на случай, если это полезно):

stat("/dev/vc/0", 0x7ffffaff2710) = -1 ENOENT (No such file or directory) stat("/dev/tty0", {st_mode=S_IFCHR|0620, st_rdev=makedev(4, 0),...}) = 0 getpid() = 88481 ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig -icanon -echo...}) = 0 ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig -icanon -echo...}) = 0 readlink("/proc/self/fd/0", "/dev/pts/61", 4095) = 11 open("/dev/pts/61", O_WRONLY) = 3 ioctl(3, TIOCGWINSZ, {ws_row=55, ws_col=228, ws_xpixel=0, ws_ypixel=0}) = 0 socket(PF_LOCAL, SOCK_STREAM, 0) = 4 connect(4, {sa_family=AF_LOCAL, sun_path="/dev/gpmctl"}, 13

0
27.01.2020, 21:20

Теги

Похожие вопросы