
Один из моих первых вопросов. Пожалуйста, прокомментируйте, если требуются дополнительные пояснения или информация или если вопрос не такой, как должен быть здесь
Я использую screen для автоматического запуска серверов (в данном примере — сервер Minecraft).
Я создаю такой экран
screen -S 'server_1' -d -m "java -Xmx4G -Xms4G -jar spigot.jar"
Затем настройте файл журнала и включите ведение журнала с помощью
screen -S 'server_1' -X logfile /srv/serverinstalls/1/stdout.txt
screen -S 'server_1' -X log
Затем содержимое stdout.txt считывается через NodeJS.
Вывод «cat stdout.txt» выглядит нормально, но если я просматриваю файл с помощью «less stdout.txt», каждая строка начинается с
>ESC[2K^M
где ^M и ESC — управляющие символы (^M — символ \r). Я думаю, что именно так screen регистрирует приглашение (начинающееся с '>') интерактивной оболочки, предоставляемой сервером.
Можно ли как-то настроить команду screen-command так, чтобы она пропускала эти управляющие символы и не регистрировала интерактивную часть оболочки?
При необходимости я могу выполнять дополнительные команды каждый раз при чтении файла журнала или каким-то образом заменять нежелательные символы с помощью NodeJS, но приглашение выглядит по-разному на каждом сервере.
Я работаю на Debian 9.9 (stretch) с экраном 4.05.00
решение1
Пробовали ли вы что-нибудь из перечисленного ниже?
ansifilter
less -r
strings