Мой вывод SSI #exec усекается

Я использую include_module Apache (2.4) для создания нескольких простых веб-страниц для вывода состояния системы, в которой он работает. Например, на одной странице есть фрагмент HTML:

                <pre>
<!--#exec cmd="ps ax" -->
                </pre>

Что должно и делает вывод команды ps на страницу. Однако это довольно большой список, и последняя его часть обрезается. Отображаемая часть имеет длину около 9000 символов.

Я не могу найти документацию об ограничении вывода для команд SSI. Может кто-нибудь посоветовать мне, что здесь происходит?

ОБНОВЛЕНИЕ: Чтобы узнать, каков «предел», я изменил команду на cat joonk.txt и заполнил этот файл большим количеством текста. Кажется, нет ограничений на количество текста, которое вы можете вывести и отобразить.

Однако я обнаружил, что вывод чувствителен к содержанию. Команда ps включает вывод:

4306 tty7     S<s+   9:59 /usr/bin/X -nolisten tcp :0 -auth /tmp/serverauth.sjfX0yR4qj

и вывод всегда останавливается после "S". Знак «‹» и последующие символы не выводятся. Это верно независимо от того, выводится ли оно командой ps или командой cat. Итак, это похоже на начало тега XML/HTML.

Итак, я меняю свой вопрос - как мне остановить интерпретацию включенного текста? Тег pre, по-видимому, этого не делает.


person AlanObject    schedule 04.03.2015    source источник


Ответы (1)


Решение, которое я использовал для этого, состояло в том, чтобы отфильтровать вывод, чтобы избежать специальных символов HTML. Итак, вместо

ps ax

я использую

ps ax | sed -e 's~&~\&amp;~g' -e 's~<~\&lt;~g'  -e  's~>~\&gt;~g’

Сноска. Кажется, для этого существовал тег xmp, который поддерживается всеми браузерами, но признан устаревшим в стандартах.

person AlanObject    schedule 05.03.2015