8

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

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

我发现了几篇 描述如何轻松创建 Python 守护进程的帖子 ,但我似乎找不到任何描述如何在生产环境中安装它们以便将它们视为任何其他普通守护进程或服务的文章。

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

4

1 回答 1

3

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

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

于 2012-03-15T15:15:14.140 回答