Шаг 5 — Запуск UnrealIRCd и настройка проверки
Что делает этот шаг
Запускаем сам IRC‑сервер (UnrealIRCd), подтверждаем, что он отвечает на подключение, и настраиваем автоматическую проверку работоспособности через скрипт ircdchk в crontab пользователя ircadmin. Это гарантирует, что простой сервера будет замечен и при необходимости предприняты действия.
Предварительные требования
- Вы уже собрали и установили UnrealIRCd; выполняете команды от пользователя с правами, позволяющими запускать сервис (например, ircadmin).
- Есть доступ к хосту по сети (локально или через VPN) и установлен IRC‑клиент для тестирования.
- В проекте присутствует каталог с ircdcron и скриптом ircdchk (см. ниже).
Запуск UnrealIRCd
В каталоге bin пользователя ircadmin выполните:
ircadmin@dhcppc2:~/bin> ./unreal startВы должны увидеть примерно такой вывод (ASCII‑арт и версия сохраняются):
Starting UnrealIRCd
__ _
| | | | | | | __ \/ \ | |
| | | |_ | | | | | |/ /| / \/ | |
| | | | ‘ \| ‘__/ \/ ` | | | | | / | | / ` |
| || | | | | | | __/ (| | || || |\ \ | _/\ (| |
_/|| ||| \|_,||__/_| _| __/\,_|
v3.2.6
using TRE 0.7.2 (GPL)
using OpenSSL 0.9.8d 28 Sep 2006
using zlib 1.2.3
- Loading IRCd configuration ..
- Configuration loaded without any problems ..
- Initializing SSL.
Dynamic configuration initialized .. booting IRCd.
ircadmin@dhcppc2:~/bin>
Если вы видите строки об инициализации конфигурации и SSL, сервер запущен.
Подключение из IRC‑клиента
Откройте IRC‑клиент и подключитесь по IP сервера, например 192.168.1.102:6667.
Правильный отклик выглядит примерно так:
- Connecting to 192.168.1.102 (6667)
-irc.zcworld-evil.mine.nu- Looking up your hostname…
-irc.zcworld-evil.mine.nu- Couldn’t resolve your hostname; using your IP address instead
«(~ Welcome to the zcworld IRC Network [email protected] ~)»
«(~ Your host is irc.zcworld-evil.mine.nu, running version Unreal3.2.6 ~)»
«(~ server was Created This server was created Sat Jan 20 2007 at 23:12:19 CST
«(~ Info ~)
Local host: server (192.168.1.101)
«(~ Current Server User Statistics for zcworld ~)»
«(~ There are 1 users and 0 invisible on 1 servers ~)»
«(~ Local Users Current Local Users: 1 Max: 1 ~)»
«(~ Global Users Current Global Users: 1 Max: 1 ~)»
MOTD File is missing
Сообщение “MOTD File is missing” означает, что не найден файл Message of the Day — это неполадка интерфейса, не препятствующая работе сервера, но желательно добавить MOTD.
Проверка и установка автопроверки (ircdchk)
- Переключитесь на суперпользователя и перейдите в рабочий каталог исходников:
su -
Password:
cd /home/zcworld/src/
find . |grep -i cron- В выводе вы увидите каталог ircdcron и файлы, включая ircdchk:
./Unreal3.2/ircdcron
./Unreal3.2/ircdcron/ircdchk.in
./Unreal3.2/ircdcron/CVS
./Unreal3.2/ircdcron/CVS/Tag
./Unreal3.2/ircdcron/CVS/Entries
./Unreal3.2/ircdcron/CVS/Repository
./Unreal3.2/ircdcron/CVS/Root
./Unreal3.2/ircdcron/ircdchk
./Unreal3.2/ircdcron/ircd.cron- Скопируйте скрипт ircdchk в bin пользователя ircadmin, установите владельца и отредактируйте crontab:
cp ./Unreal3.2/ircdcron/ircdchk ~ircadmin/bin/
cd ~ircadmin/bin
chown ircadmin:ircadmin ircdchk
cd ~ircadmin/bin
crontab -eВ появившемся редакторе вставьте (нажмите Insert для вставки):
# this is to check the server every 2 mins
*/2 * * * * /home/ircadmin/bin/ircdchk >/dev/null 2>&1Нажмите Esc, затем :wq, чтобы сохранить и выйти. Должно появиться сообщение:
crontab: installing new crontab
Проверьте установленный crontab:
crontab -lЧто делает ircdchk
ircdchk — это скрипт проверки доступности и корректной работы ircd. В типичных вариантах он проверяет:
- слушает ли процесс нужный порт (обычно 6667),
- отвечает ли баннер сервера,
- корректны ли PID‑файлы и т. п.
Если скрипт сообщает об ошибке, его следует изучить и при необходимости адаптировать под вашу систему (пути, имена процессов, пользователь). Не удаляйте вывод скрипта в >/dev/null во время отладки — временно включите логирование для анализа.
Устранение неполадок
- “Couldn’t resolve your hostname”: сервер не может выполнить обратное DNS‑разрешение. Это нормально в локальной сети; добавьте запись в /etc/hosts для корректного поведения.
- “MOTD File is missing”: создайте файл motd в каталоге сервера или укажите правильный путь в конфиге UnrealIRCd.
- SSL/Cert ошибки: проверьте пути к сертификатам и права доступа, убедитесь, что OpenSSL совместим с версией UnrealIRCd.
- Crontab не выполняется: проверьте права скрипта (chmod +x), SHELL и PATH в crontab; временно настройте логирование выполнения скрипта в файл для диагностики.
Important: если ircdchk использует относительные пути или предполагает определённые переменные окружения, crontab может не иметь их — всегда задавайте абсолютные пути и экспортируйте нужные переменные в скрипте.
Контроль и приёмо‑сдаточные критерии
Критерии приёмки
- Запуск UnrealIRCd без фатальных ошибок (server booted, конфигурация загружена).
- Успешное подключение через IRC‑клиент и получение баннера сервера.
- Скрипт /home/ircadmin/bin/ircdchk исполняется каждые 2 минуты и при нарушении состояния фиксирует событие.
- MOTD либо присутствует, либо задокументировано, почему его нет.
Контрольный список для ролей
Администратор IRC
- Убедиться, что конфигурация UnrealIRCd валидна.
- Настроить сертификаты и проверить SSL.
- Создать/проверить MOTD.
- Проверить работу ircdchk и логи cron.
Системный инженер
- Установить правильные права на /home/ircadmin/bin/ircdchk (chmod 750 или 700).
- Добавить записи в /etc/hosts при необходимости.
- Настроить мониторинг порта 6667 (SLI: доступность; SLO: 99% рабочего времени).
Разработчик/интегратор
- Адаптировать ircdchk под особенности окружения (пути, пользователь).
- Написать unit‑тесты для скрипта проверки (имитация down/up сервера).
Быстрый план действий при проблемах
- Проверить логи UnrealIRCd (errors, ssl).
- Запустить ./unreal start вручную и посмотреть вывод.
- Проверить, слушает ли порт 6667: netstat/ss или lsof.
- Выполнить ircdchk вручную и проанализировать вывод.
- Если crontab не выполняется, добавить временный лог: /2 * /home/ircadmin/bin/ircdchk >> /tmp/ircdchk.log 2>&1
Альтернативные подходы
- Вместо crontab можно использовать systemd‑таймеры или внешние мониторинговые системы (Prometheus Alertmanager, Zabbix) для более гибкой реакции и оповещений.
- Для развёртывания использовать контейнеризацию (Docker) и оркестрацию, где проверка состояния делегируется healthcheck и restartPolicy.
Резюме
Вы запустили UnrealIRCd, проверили подключение через IRC‑клиент и настроили автоматическую проверку сервера через cron. Следующие шаги: добавить MOTD, убедиться в корректности SSL и интегрировать мониторинг/уведомления для быстрого реагирования.
Notes: сохраняйте резервную копию конфигурации перед изменениями и документируйте любые кастомизации ircdchk.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента