Просьба добавить в пакет unit-файлы для нормальной работы с systemd. На данный момент сервер работает через xinetd, который по зависимостям запускает service network, что на системах, где сеть управляется через systemd-networkd, увеличивает время старта системы не менее чем на 30 секунд.
Created attachment 6182 [details] rsyncd.socket
Created attachment 6183 [details] rsyncd@.service
Надо, чтобы они не конфликтовали ни друг с другом, ни с xinetd, и чтобы по умолчанию установка пакета не преводила к влючению сервиса, принимающего соединения отовсюду на порту 873. Между прочим, в федорном пакете эти файлы немного другие.
rsync-3.1.1-alt1 -> sisyphus: * Fri Nov 28 2014 Dmitry V. Levin <ldv@altlinux> 3.1.1-alt1 - Updated to v3.1.1. - server: packaged systemd unit files (closes: #30508).
К сожалению, в сборке указан файл /etc/sysconfig/rsyncd с нулевой длинной. При установке пакета он в системе не создается. И даже если его создать вручную с нулевой длинной, то сервис все равно не запускается. Чтобы все поправить, достаточно в файл написать строку OPTIONS=
(In reply to comment #5) > К сожалению, в сборке указан файл /etc/sysconfig/rsyncd с нулевой длинной. При > установке пакета он в системе не создается. Это я сделал специально, чтобы по умолчанию оно не активировалось. Альтернативой было бы не включать секцию Install. Не факт, что выбранный мной способ лучше, но мне так показалось. Вероятно, имеет смысл обсудить в devel@. > И даже если его создать вручную с > нулевой длинной, то сервис все равно не запускается. Чтобы все поправить, > достаточно в файл написать строку > > OPTIONS= Достаточно сделать echo >> /etc/sysconfig/rsyncd
(В ответ на комментарий №0) > xinetd, который по зависимостям запускает service network Просьба не путать network.service и network.target .
в текущем виде unit-файлы не рабочие 1) ConditionFileNotEmpty=/etc/sysconfig/rsyncd - нет такого файла в пакете и сервис никогда стартовать не будет. Просьба просто добавить файл в пакет с содержимым OPTIONS="" 2) не надо использовать Environment=OPTIONS=, лучше использовать конструкцию типа EnvironmentFile=-/etc/sysconfig/rsyncd ("-" в начале означает что этого файла может не быть). А если в пакете будет /etc/sysconfig/rsyncd, то тогда можно без минуса. Предлагаю привести к такому виду: /etc/sysconfig/rsyncd: OPTIONS="" rsyncd@.service: [Unit] Description=Rsync Server ConditionFileNotEmpty=/etc/rsyncd.conf [Service] EnvironmentFile=/etc/sysconfig/rsyncd ExecStart=/usr/bin/rsync --daemon --no-detach $OPTIONS rsyncd.socket: [Unit] Description=Rsync Server Activation Socket ConditionFileNotEmpty=/etc/rsyncd.conf
(In reply to comment #8) > в текущем виде unit-файлы не рабочие > > 1) ConditionFileNotEmpty=/etc/sysconfig/rsyncd - нет такого файла в пакете и > сервис никогда стартовать не будет. Так и было задумано. > Просьба просто добавить файл в пакет с содержимым OPTIONS="" Тогда сервис будет стартовать по умолчанию, а это неправильно. Постановка задачи следующая: - для того, чтобы имело смысл активировать rsync server, необходимо настроить /etc/rsyncd.conf; - /etc/rsyncd.conf в пакете традиционно содержит комментарии, поэтому он всегда непуст; - в идеале надо проверять, настроен ли rsync server через /etc/rsyncd.conf, в качестве условия активации юнита.
хорошо. - но все равно не понятно зачем используется "Environment=OPTIONS=" - ConditionFileNotEmpty=/etc/rsyncd.conf можно убрать, раз он всегда не пустой.
(In reply to comment #10) > хорошо. Не очень хорошо. Хорошо было бы, если бы можно было проверить rsyncd.conf > - но все равно не понятно зачем используется "Environment=OPTIONS=" Это no-op. > - ConditionFileNotEmpty=/etc/rsyncd.conf можно убрать, раз он всегда не пустой. Это перестраховка.
закрываю.