我需要为应部署为服务的程序构建一个包。我已添加一个debian/helloworld.service
,并且我的包已构建、安装并正常运行,我/lib/systemd/system/helloworld.service
在目标主机上有一个。
但是,用户可能能够运行该服务的多个实例,每个实例都有自己的配置文件,我已经看到这里我需要一个格式的模板服务文件[email protected]
。
但是当我尝试使用构建包时,包中不再有模板服务文件(显示.deb 中没有)debian/[email protected]
dpkg -c
[email protected]
请注意,我正在使用 构建二进制包fakeroot debian/rules binary
。
最好的方法是什么?我应该使用 postinst 脚本吗(但https://www.debian.org/doc/manuals/maint-guide/dother.en.html#maintscripts似乎不鼓励使用它们)?
谢谢。
答案1
看过之后阿帕奇2它是使用模板服务安装的,似乎需要debian/helloworld.service
与模板一起添加才能在.deb 文件中看到模板文件。debian/[email protected]
现在我可以看到[email protected]
了dpkg -c
。
答案2
您可以在 postinst 中添加一个脚本,该脚本将在目标主机上创建模板服务文件。但是,我们不鼓励这样做,因为它违背了声明式打包的原则。
更好的方法是随您的包提供一个脚本,用户可以运行该脚本以使用所需的配置创建所需的服务实例。该脚本可以根据需要运行,并可以生成所需的服务文件并启动服务实例。