[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