Bug 46430 - Не создаётся сокет для rsyslog
Summary: Не создаётся сокет для rsyslog
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: systemd (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Alexey Shabalin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-06-07 14:42 MSK by Сергей Бессонов
Modified: 2023-07-26 17:12 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Сергей Бессонов 2023-06-07 14:42:32 MSK
Ставим rsyslog. В соответствии с wiki добавляем в /etc/systemd/journal.conf строчку ForwardToSyslog=yes. Перезапускаем journald.

После установки rsyslog пакетом rsyslog-classic, запуск systemctl start rsyslogd заканчивается ошибкой: 

июн 07 14:12:55 host-120 systemd[1]: Started systemd-journald.service - Journal Service.
июн 07 14:13:02 host-120 systemd[1]: syslog.socket: Socket service syslog.service not loaded, refusing.
июн 07 14:13:02 host-120 systemd[1]: Failed to listen on syslog.socket - Syslog Socket.
июн 07 14:13:02 host-120 systemd[1]: Dependency failed for rsyslog.service - System Logging Service.
июн 07 14:13:02 host-120 systemd[1]: rsyslog.service: Job rsyslog.service/start failed with result 'dependency'.

Файл /run/systemd/journal/syslog действительно отсутствует.
Comment 1 Сергей Бессонов 2023-06-09 00:43:30 MSK
Методом ненаучного тыка установлено, есть если запустить сокет руками один раз, командой systemctl start syslog.socket, то rsyslog начинает работать.

Либо поставить пакет rsyslog-journal, который добавляет библиотеку для взятия логов из journal каким-то другим способом.

Это баг, или так задумано и надо просто упомянуть о таких тонкостях на wiki?
Comment 2 Сергей Бессонов 2023-07-26 17:12:57 MSK
Дальнейшие исследования показали, что:

1. rsyslog не стартует по зависимостям, если не запускается syslog.socket. 

2. Syslog.socket не запускается, если не найден syslog.service

3. Syslog.service не существует до момента выполнения команды systemctl enable rsyslog, потому что syslog.service - это виртуальный юнит, который ссылается либо на rsyslog, либо на syslog-ng, в зависимости от того, кому сделан enable (оба их включить нельзя).

Т.е. если юнит rsyslog не находится в состоянии enabled, то и делать start ему нельзя, он не запустится.

Я так понимаю, это не баг, а фича, и её надо просто описать на wiki, да?