[devel] обновления пакетов с поддержкой systemd

Alexey Shabalin a.shabalin на gmail.com
Пт Июн 10 18:49:00 UTC 2011


27 мая 2011 г. 21:11 пользователь Dmitry V. Levin написал:
> On Sat, May 21, 2011 at 04:42:31PM +0400, Alexey Shabalin wrote:
>> Чёрт, с этим исправлением возникает другая проблема.
>> В ALTLinux много имён init-скриптов не соответствуют названиям из upstream.
>> Например udev -> udevd,  bluetooth -> bluetoothd.service и т.п.
>> (добавляется d в конце имени).
>
> Вопрос, эти названия из upstream существуют в виде init-скриптов, или в
> каком-то ином виде?  Например, если апстрим реализует некий демон
> SERVICEd, то init-скрипт у нас с высокой вероятностью будет называться
> SERVICEd а не SERVICE.  Просьба прояснить картину.
>
>> Для работы с systemd на такие имена сделаны симлинки
>> # ls -l /lib/systemd/system/udevd.service
>> lrwxrwxrwx 1 root root 12 Май 21 17:39
>> /lib/systemd/system/udevd.service -> udev.service
>> [root на shabalin-nb ~]# ls -l /lib/systemd/system/bluetoothd.service
>> lrwxrwxrwx 1 root root 17 Май 21 17:39
>> /lib/systemd/system/bluetoothd.service -> bluetooth.service
>>
>> Это работает  для start|stop (systemctl start|stop foo.service или
>> service foo start|stop ),
>> но не работает для enable|disable ( systemctk enable|disable
>> foo.service или chkconfig foo enable|disable)
>> Ругается что это symlink и хочет правильное имя.
>>
>> Как это объезжать?
>> - привести имена init-скриптов к апстримному виду
>
> В этом случае сломаются обновление пакетов и привычки у людей.
>
>> - привести имена .service файлов к ALTLinux виду
>
> В этом случае может ухудшиться переносимость .service-файлов.
>
> Если идти путем переименования, то придется рассматривать каждый случай
> в отдельности.
>
>> - научить systemd делать enable|disable для симлинков (а симлинк может
>> быть и на /dev/null - для systemd это нормальный способ выключить или
>> замаскировать сервис).

в версии 28-alt3 я убрал ограничение на симлинки. Теперь можно делать
enable|disable на симлинки.
start|stop можно было делать и раньше.
Экспериментировал с bluetoothd.service - вроде все нормально.
Даже работает, если включать bluetoothd.service, а выключать уже
bluetooth.service - выдаёт предупреждение, но ошибок нет.

> Если симлинк ведет на /dev/null, то как ему можно сделать enable|disable?
про симлинки на /dev/null можно не беспокоится, ни start, ни enable
для них не работает.

-- 
Alexey Shabalin


Подробная информация о списке рассылки Devel