Как я могу создать сервис с именем, отличающимся от названия пакета?
Я готовлю пакет, который обеспечивает также сервисный файл (systemd конфигурация), который должен иметь имя, отличающееся от пакета.
В настоящее время я добавлял файл debian/pkg_name.service, и он работает, но имя не отражает запущенный сервис.
Я уже заметил это dh_installinit
имеет a --name
опция, но tha списки страницы справочника
debian/package.name.init, debian/package.name.default и debian/package.name.upstart вместо обычного debian/package.init, debian/package.default и debian/package.upstart
но не package.service. Кроме того, я действительно не понял, куда я должен поместить строку. В настоящее время мой debian/rules имеет
%:
dh $@ --with bash-completion --with systemd
Наконец я решил его со следующей конфигурацией:
имя пакета является thunder-buildout-prod
debian/oooctl.service как рассматриваемым
в debian/rules:
%: dh $@ --with bash-completion --with systemd --with python2 override_dh_systemd_enable: dh_systemd_enable -p thunder-buildout-prod debian/oooctl.service override_dh_systemd_start: dh_systemd_start -p thunder-buildout-prod debian/oooctl.service
Как последнее примечание. Наличие сценария в/etc/init.d/oooctl (примечание: то же имя как сервис), что источники/lib/lsb/init-functions, этого достаточно для создания, это просто работать вызовом к systemctl начинать/останавливаться/состояние oooctl.service игнорирование остальной части сценария
Согласно dh_systemd_enable
руководство https://manpages.debian.org/testing/debhelper/dh_systemd_enable.1.en.html :
--name=name
Install the service file as name.service instead of the default
filename, which is the package.service. When this parameter is
used, dh_systemd_enable looks for and installs files named
debian/package.name.service instead of the usual debian/package.service.
я нашел, что также необходимо передать имя к dh_installinit
. Например, если бы Вашим пакетом был Амед "mytool", но Вы хотите, чтобы Ваш сервисный файл был mytoolsrv.service
вместо mytool.service
, то Вы создали бы файл debian/tool.toolsrv.service
и поместили бы следующее в Вас debian/rules
файл:
#!/usr/bin/make -f
%:
dh $@
override_dh_systemd_enable:
dh_systemd_enable --name=mytoolsrv
override_dh_installinit:
dh_installinit --name=mytoolsrv
Протестированный с debhelper
уровень совместимости 10.