Summary: | добавить unit-файлы для совместимости с systemd | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Alexei Takaseev <taf> | ||||||
Component: | rsync-server | Assignee: | placeholder <placeholder> | ||||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||||
Severity: | normal | ||||||||
Priority: | P3 | CC: | evg, glebfm, ldv, placeholder, real.altlinux.org, shaba, zerg | ||||||
Version: | unstable | ||||||||
Hardware: | all | ||||||||
OS: | Linux | ||||||||
Attachments: |
|
Description
Alexei Takaseev
2014-11-26 14:17:00 MSK
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 можно убрать, раз он всегда не пустой. Это перестраховка. закрываю. |