Вопрос или проблема
В данный момент я следую этому руководству по настройке ClamAV
на своем AlmaLinux 9.3
компьютере, однако на Шаге 11 я не могу запустить clamd@service
и хотел бы узнать, сталкивался ли кто-нибудь еще с этой проблемой, так как я не могу найти много информации из других источников.
[root@localhost tester]# sudo systemctl status clamd@service
× [email protected] - даемон сканера clamd (сервис)
Загружено: загружено (/usr/lib/systemd/system/[email protected]; отключено; пресет: отключено)
Активно: неудача (Результат: код завершения) с Thu 2023-12-28 12:08:15 GMT; 3min 26s назад
Документы: man:clamd(8)
man:clamd.conf(5)
https://www.clamav.net/documents/
Процесс: 6728 ExecStart=/usr/sbin/clamd -c /etc/clamd.d/service.conf (код=вышел, статус=1/НЕУДАЧА)
ЦП: 3мс
Dec 28 12:08:15 localhost.localdomain systemd[1]: [email protected]: Запланированная перезагрузка, счетчик перезапусков на уровне 5.
Dec 28 12:08:15 localhost.localdomain systemd[1]: Остановлен даемон сканера clamd (сервис).
Dec 28 12:08:15 localhost.localdomain systemd[1]: [email protected]: Запрос на запуск повторился слишком быстро.
Dec 28 12:08:15 localhost.localdomain systemd[1]: [email protected]: Не удается с результатом 'код завершения'.
Dec 28 12:08:15 localhost.localdomain systemd[1]: Не удалось запустить даемон сканера clamd (сервис).
Я выполнил следующую команду, согласно рекомендованному выводу в Терминале:
$ journalctl -xeu [email protected]
░░ Код выхода процесса 'вышел', и его статус выхода равен 1.
Dec 28 12:45:18 localhost.localdomain systemd[1]: [email protected]: Не удалось с результатом 'код завершения'.
░░ Subject: Unit failed
░░ Определен: systemd
░░ Поддержка: https://access.redhat.com/support
░░
░░ Юнит [email protected] вошел в состояние 'неудача' с результатом 'код завершения'.
Dec 28 12:45:18 localhost.localdomain systemd[1]: Не удалось запустить даемон сканера clamd (сервис).
░░ Subject: Запрос на старт для юнита [email protected] не удался
░░ Определен: systemd
░░ Поддержка: https://access.redhat.com/support
░░
░░ Запрос на старт для юнита [email protected] закончился неудачей.
░░
░░ Идентификатор задачи 7444, результат задачи - неудача.
Dec 28 12:45:18 localhost.localdomain systemd[1]: [email protected]: Запланированная перезагрузка, счетчик перезапусков на уровне 5.
░░ Subject: Автоматическая перезагрузка юнита запланирована
░░ Определен: systemd
░░ Поддержка: https://access.redhat.com/support
░░
░░ Автоматическая перезагрузка юнита [email protected] запланирована, как результат для
░░ установленного параметра Restart= для юнита.
Dec 28 12:45:18 localhost.localdomain systemd[1]: Остановлен даемон сканера clamd (сервис).
░░ Subject: Запрос на остановку юнита [email protected] завершился
░░ Определен: systemd
░░ Поддержка: https://access.redhat.com/support
░░
░░ Запрос на остановку юнита [email protected] завершился.
░░
░░ Идентификатор задачи 7568, результат задачи - выполнено.
Dec 28 12:45:18 localhost.localdomain systemd[1]: [email protected]: Запрос на запуск повторился слишком быстро.
Dec 28 12:45:18 localhost.localdomain systemd[1]: [email protected]: Не удалось с результатом 'код завершения'.
░░ Subject: Unit failed
░░ Определен: systemd
░░ Поддержка: https://access.redhat.com/support
░░
░░ Юнит [email protected] вошел в состояние 'неудача' с результатом 'код завершения'.
Dec 28 12:45:18 localhost.localdomain systemd[1]: Не удалось запустить даемон сканера clamd (сервис).
░░ Subject: Запрос на старт для юнита [email protected] не удался
░░ Определен: systemd
░░ Поддержка: https://access.redhat.com/support
░░
░░ Запрос на старт для юнита [email protected] завершился неудачей.
░░
░░ Идентификатор задачи 7568, результат задачи - неудача.
Скопируйте ваш /etc/clamd.d/scan.conf
в /etc/clamd.d/service.conf
и внесите изменения на шаге 11 в этот файл.
Юнит systemd, который они вызывают, имеет имя экземпляра @
, которое передается переменной как юнит и ссылается как %i
. Поэтому, когда вы пытаетесь вызвать systemctl start clamd@service
, он ссылается на /etc/clamd.d/service.conf
согласно файлу юнита, который не существует.
Если мы создадим файл конфигурации, который ищет юнит, он должен запуститься.
Для справки, файл юнита – это /usr/lib/systemd/system/[email protected]
Это хорошо объяснено здесь: служба clamd
Вот инструкция на случай, если ссылка больше не доступна:
“Создайте новый файл конфигурации службы: Если файл службы Clamd еще не существует на вашей системе, создайте его, используя:”
vim /etc/clamd.d/service.conf
Добавьте следующие базовые строки в конец файла:
# Пример файла конфигурации Daemon ClamAV
LogFile /var/log/clamd.service.log
LogFileMaxSize 2M
LogTime yes
LogVerbose yes
PidFile /var/run/clamd.service.pid
DatabaseDirectory /var/lib/clamav
TCPSocket 3310
TCPAddr 127.0.0.1
Добавьте правильные права доступа
sudo chmod 644 /etc/clamd.d/service.conf
sudo chown clamav:clamav /etc/clamd.d/service.conf
Убедитесь, что там правильный execStart:
vim /etc/systemd/system/[email protected]
или на RHEL:
vim /etc/systemd/system/multi-user.target.wants/[email protected]
он должен содержать следующую строку в части [service]:
ExecStart=/usr/sbin/clamd --config-file=/etc/clamd.d/service.conf
или эквивалентная строка:
ExecStart = /usr/sbin/clamd -c /etc/clamd.d/%i.conf
А теперь все в порядке:
sudo systemctl daemon-reload
sudo systemctl start [email protected]
sudo systemctl status [email protected]
Ответ или решение
Для решения проблемы с запуском службы ClamD на вашей машине AlmaLinux 9.3, необходимо выполнить несколько шагов, чтобы удостовериться, что конфигурация настроена должным образом.
-
Проверка конфигурации: Убедитесь, что файл конфигурации
service.conf
существует в директории/etc/clamd.d/
. Если этот файл отсутствует, вам нужно его создать и настроить.Откройте терминал и выполните команду:
sudo vim /etc/clamd.d/service.conf
Затем добавьте в конец файла следующие строки:
# Пример конфигурационного файла для Daemon ClamAV LogFile /var/log/clamd.service.log LogFileMaxSize 2M LogTime yes LogVerbose yes PidFile /var/run/clamd.service.pid DatabaseDirectory /var/lib/clamav TCPSocket 3310 TCPAddr 127.0.0.1
-
Установка прав доступа: Убедитесь, что файл конфигурации имеет правильные разрешения, чтобы служба могла к нему обратиться.
Выполните команды:
sudo chmod 644 /etc/clamd.d/service.conf sudo chown clamav:clamav /etc/clamd.d/service.conf
-
Проверка файла службы: Убедитесь, что файл службы
clamd@.service
корректно настроен на использование вашего файла конфигурации. Обычно этот файл находится здесь:/usr/lib/systemd/system/clamd@.service
Откройте его с помощью редактора:
sudo vim /usr/lib/systemd/system/clamd@.service
Убедитесь, что строка
ExecStart
выглядит примерно так:ExecStart=/usr/sbin/clamd --config-file=/etc/clamd.d/%i.conf
Либо, если вы хотите указать конкретный файл:
ExecStart=/usr/sbin/clamd -c /etc/clamd.d/service.conf
-
Перезагрузка systemd и перезапуск службы: После внесения изменений необходимо перезагрузить конфигурации systemd и снова попробовать запустить службу.
Выполните:
sudo systemctl daemon-reload sudo systemctl start clamd@service sudo systemctl status clamd@service
-
Проверка логов: Если служба всё равно не запускается, вы можете проверить логи для получения дополнительной информации. Выполните команду:
journalctl -xeu clamd@service
Это позволит вам увидеть, какие ошибки возникают при попытке запуска.
Выполнив все вышеперечисленные шаги, вы должны быть в состоянии успешно запустить службу ClamD на вашем AlmaLinux 9.3. Если проблема сохраняется, пожалуйста, предоставьте дополнительные детали об ошибках из журналов для дальнейшего анализа.