Вопрос или проблема
В данный момент я следую этому руководству по настройке 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; 3мин 26с назад
Документы: man:clamd(8)
man:clamd.conf(5)
https://www.clamav.net/documents/
Процесс: 6728 ExecStart=/usr/sbin/clamd -c /etc/clamd.d/service.conf (код=выход, статус=1/НЕУДАЧА)
CPU: 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]: Не удалось с результатом 'код выхода'.
░░ Тема: Юнит не удался
░░ Определено: systemd
░░ Поддержка: https://access.redhat.com/support
░░
░░ Юнит [email protected] перешел в состояние 'неудача' с результатом 'код выхода'.
Dec 28 12:45:18 localhost.localdomain systemd[1]: Не удалось запустить демон сканера clamd (сервис).
░░ Тема: Работа по запуску юнита [email protected] провалилась
░░ Определено: systemd
░░ Поддержка: https://access.redhat.com/support
░░
░░ Работа по запуску юнита [email protected] завершилась с неудачей.
░░
░░ Идентификатор задачи 7444, результат задания неудача.
Dec 28 12:45:18 localhost.localdomain systemd[1]: [email protected]: Запланирована работа перезапуска, счетчик перезапусков равен 5.
░░ Тема: Автоматический перезапуск юнита запланирован
░░ Определено: systemd
░░ Поддержка: https://access.redhat.com/support
░░
░░ Автоматический перезапуск юнита [email protected] был запланирован в соответствии с заданным значением Restart= для юнита.
Dec 28 12:45:18 localhost.localdomain systemd[1]: Остановлен демон сканера clamd (сервис).
░░ Тема: Работа по остановке юнита [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]: Не удалось с результатом 'код выхода'.
░░ Тема: Юнит не удался
░░ Определено: systemd
░░ Поддержка: https://access.redhat.com/support
░░
░░ Юнит [email protected] перешел в состояние 'неудача' с результатом 'код выхода'.
Dec 28 12:45:18 localhost.localdomain systemd[1]: Не удалось запустить демон сканера clamd (сервис).
░░ Тема: Работа по запуску юнита [email protected] провалилась
░░ Определено: systemd
░░ Поддержка: https://access.redhat.com/support
░░
░░ Работа по запуску юнита [email protected] завершилась с неудачей.
░░
░░ Идентификатор задачи 7568, результат задания неудача.
Скопируйте свой /etc/clamd.d/scan.conf
в /etc/clamd.d/service.conf
и внесите изменения в Schritt 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
Добавьте следующие основные строки в конец файла:
# Пример файла конфигурации демона 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, может быть связана с отсутствием конфигурационного файла, к которому служба обращается при старте. Рассмотрим шаги, позволяющие решить данную проблему.
Шаги по устранению проблемы
-
Проверка конфигурационного файла.
Убедитесь, что файл
/etc/clamd.d/service.conf
существует. Если его нет, создайте его, скопировав настройки из другого конфигурационного файла, например, из/etc/clamd.d/scan.conf
:sudo cp /etc/clamd.d/scan.conf /etc/clamd.d/service.conf
-
Редактирование конфигурационного файла.
Откройте файл
/etc/clamd.d/service.conf
в текстовом редакторе:sudo vim /etc/clamd.d/service.conf
Убедитесь, что в этом файле присутствуют все необходимые настройки. Вот пример минимальной конфигурации, которую вы можете использовать:
# Пример конфигурационного файла ClamAV Daemon 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
-
Проверка файла службы.
Убедитесь, что в системной единице службы
/usr/lib/systemd/system/clamd@.service
правильно указана конфигурация:sudo vim /usr/lib/systemd/system/clamd@.service
Проверьте, что секция
[Service]
содержит строку, указывающую на правильный файл конфигурации:ExecStart=/usr/sbin/clamd -c /etc/clamd.d/%i.conf
Это должно ссылаться на файл
/etc/clamd.d/service.conf
, когда вы запускаетеsystemctl start clamd@service
. -
Перезагрузка демонов systemd.
После внесенных изменений вам необходимо перезагрузить демоны systemd, чтобы они распознали изменения:
sudo systemctl daemon-reload
-
Запуск службы.
Теперь вы можете попробовать снова запустить службу:
sudo systemctl start clamd@service
-
Проверка состояния службы.
Чтобы проверить состояние службы и убедиться, что она запущена корректно, выполните:
sudo systemctl status clamd@service
Если служба по-прежнему не запускается и в журнале ошибок присутствуют сообщения о неудаче, вам следует посмотреть более детально в журнале с помощью:
journalctl -xeu clamd@service
Заключение
Следуя этим шагам, вы сможете устранить проблему с запуском службы clamd
на вашем AlmaLinux 9.3. Если возникнут дополнительные проблемы, пожалуйста, предоставьте подробности об ошибках, чтобы можно было далее анализировать ситуацию.