如何使用setuptools打包Python守护程序

Cer*_*rin 8 python linux daemon setuptools python-daemon

如何使用setuptools打包Python应用程序,以便在安装时(例如通过setup.py或pip),将守护程序脚本放在适当的位置,启动它,并将其标记为在引导时自动启动?

在我的例子中,我的代码只适用于Linux,所以我只关心在Linux环境(特别是Ubuntu)中安装守护进程.

我发现了几篇 描述如何轻松创建Python守护进程的帖子 ,但我似乎无法找到任何描述如何在生产环境中安装它们的内容,以便将它们视为任何其他正常的守护进程或服务.

我知道Ubuntu和其他一些发行版将他们的守护进程保存在/etc/init.d中,我知道如何使用setuptools将文件复制到文件系统上的特定位置,因此将我的脚本复制或符号链接到/ etc /是安全的init.d然后运行chkconfig来设置它的运行时,还是有更安全的分发中立方式安装守护进程?

aqu*_*tae 3

通过为发行版创建适当的包(对于 Ubuntu,为 .deb)可以更好地处理这个问题,因为您无法保证跨发行版的启动脚本的位置。例如,arch linux 使用/etc/rc.d/。另外,复制到这样的位置将需要 root 访问权限(我认为安装 python 包不一定需要 root 访问权限),并且在卸载时可能不容易逆转。

我建议您创建一个正常的 setupttools 安装,然后将其打包到带有 /etc/init.d 链接的 deb 中。