| 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, vt, 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 можно убрать, раз он всегда не пустой. Это перестраховка. закрываю. |