Я запускаю веб-сайт и несколько сервисов моей небольшой компании на VPS (под управлением CentOS 6.8), на котором у меня есть полные права администратора.
Из-за попытки определить проблему утечки памяти в сценариях PHP, я некоторое время наблюдал за VPS и еще раз просмотрел журналы. Я вижу длинную строку сообщений журнала, например эти:
снимок экрана с сообщениями об ошибках
Я хотел бы решить любые проблемы конфигурации, из-за которых эти ошибки «загрязняют» системные журналы, потому что они делают журналы непригодными для использования. Каждые 5 секунд я получаю такую партию:
Feb 17 12:43:03 vpsxxxxx init: tty (/dev/tty2) main process (1381) terminated with status 1
Feb 17 12:43:03 vpsxxxxx init: tty (/dev/tty2) main process ended, respawning
Feb 17 12:43:03 vpsxxxxx init: tty (/dev/tty1) main process (1382) terminated with status 1
Feb 17 12:43:03 vpsxxxxx init: tty (/dev/tty1) main process ended, respawning
Feb 17 12:43:03 vpsxxxxx /sbin/mingetty[1419]: tty2: no controlling tty: Operation not permitted
Feb 17 12:43:03 vpsxxxxx /sbin/mingetty[1420]: tty1: no controlling tty: Operation not permitted
К моменту ротации журналов (еженедельно) у меня в файле журнала уже более 60 МБ, что ставит nano на колени.
Понятия не имею, насколько необходим mingetty для нормальной работы на VPS (или для подключения через SSH). Я единственный администрирую сервер, но я редко использую более двух одновременных SSH-соединений.
Есть ли решение проблемы такого количества сообщений журнала, связанных с mingetty?
Поскольку ваша машина является виртуальной машиной, вы можете полностью отключить mingetty и виртуальные консоли, как указано на http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/getty-mingetty.html :
Если на машине нет видеокарты, удалите все записи mingetty из / etc / inittab.
Поскольку вы используете CentOS 6, я полагаю, что у вас есть выскочка и что нет inittab. Чтобы отключить tty, вы можете создать два файла /etc/init.d/tty1.override и /etc/init.d/tty2.override, содержащие только слово 'manual' (все команды должны передаваться от имени пользователя root):
echo manual > /etc/init/tty1.override
echo manual > /etc/init/tty2.override
Но я рекомендую вам сделать несколько тестов раньше: stop tty1
и stop tty2
, и попробуйте открыть новое соединение ssh. Если это работает, отключите tty1 и tty2.
@Hexdump привел меня к решению, прочитав, что я должен был сделать о выскочке. Большое спасибо.
Решение для меня состояло из двух шагов:
nano /etc/init/start-ttys.override
(содержание файла ниже)shutdown -r now
Содержимое файла переопределения:
env ACTIVE_CONSOLES=/dev/tty[1-1]
script
end script
По сути, я заменяю проблемный скрипт, запускающий экземпляры mingetty, на скрипт без операции.
Первая строка - это остаток моей попытки уменьшить количество tty в соответствии с эта тема, который также показывает, что на пути ACTIVE_CONSOLES
обрабатывается. Эта ошибка является причиной необходимости перезагрузки. Я не уверен, что эта первая строка необходима.
Проблема решена, но я считаю, что основная причина еще не решена, что оставляет у меня кислое послевкусие, так сказать: если бы у меня была эта проблема с загрязнением журнала на реальной машине, я бы не смог отключить сценарий. Поэтому я считаю это недоработанным решением, но пока его достаточно для текущей ситуации.