[devel] systemd policy - different names for systemd and sysV.
Dmitry V. Levin
ldv на altlinux.org
Пт Май 11 22:31:28 MSK 2012
On Fri, May 11, 2012 at 02:16:07PM +0300, Igor Vlasenko wrote:
> Господа,
> когда имя systemd сервиса отличается от имени sysV init скрипта,
> возникает вопрос, что писать в %post/un_service <name>.
>
> Естественно, хочется писать в %post/un_service
> имя sysV init скрипта.
>
> Если сделать симлинк systemd сервиса с sysV init именем,
> например, bluetoothd.service -> bluetooth.service
> service <sysV init имя> start/stop работать будет.
>
> Проблема в том, что chkconfig <sysV init имя> on / off
> не работает, даже если есть симлинк, поскольку эта функциональность
> считается неправильной в systemctl.
>
> Это плохо, так как не позволяет писать скрипты, одинаково
> работающие хоть под sysV init, хоть под systemd.
>
> Однако нам ничто не мешает пропатчить chkconfig,
> чтобы он разрешал симлинк в настоящее имя systemd сервиса.
>
> Пример такого достаточно тривиального патча к chkconfig
> приложен в аттачменте (chkconfig-2.patch).
>
> Предлагаю патчить chkconfig (не обязательно предложенным патчем)
Патч, в принципе, логичный, и (с точностью до кода проверки суффикса)
применимый. Только не логичнее ли применить это изменение прямо в
systemctl? Есть ли какие-нибудь причины патчить именно chkconfig,
а не systemctl?
> + /* wheather the end of realName ends with .service */
> + if (strncmp (realName+strlen(realName)-sizeof(".service"),
> + ".service", sizeof(".service")) != 0) {
Если вдруг strlen(realName) окажется меньше sizeof(".service"), то
может получиться не очень хорошо.
--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 198 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20120511/af41b5ca/attachment.bin>
Подробная информация о списке рассылки Devel