如何在Python中编写UNIX守护程序?

大家好. 我刚刚完成了在Python上写FTP守护程序. 做得很好,我想写一个" insteller"以允许结束 用户"深入"将软件包安装在系统内. 详细信息i 希望该安装程序能够执行以下操作: - 复制ftpd.py in /usr /bin. - 根据系统的不同,它应该能够确定 服务启动目录位于(例如/etc/init.d)和 复制一个能够在启动时自动运行 /usr/ftpd.py的脚本. - 可选地安装使用" MAN FTPD"的手动可调用. - 有关安装程序包的许多其他操作. 我应该怎么做这样的事情? 我必须使用吗 拆除? 我必须使用第三方套餐吗? 我必须写一个吗 " setup.py"并手动解决问题? 最后一个解决方案是有问题的,因为(愚蠢的)例子,debian 希望可执行/程序位于/usr/bin中 另一个路径(例如 /usr /sbin). 另一个问题:.deb,.rpm,[...]软件包呢? 可以将它们与Python程序一起使用吗? 通过使用它们解决第三方依赖关系可能是一件好事. 最好的问候

# 回答1

您可以使用setuptools在各种bin-directories中生成脚本. 当然,您可以尝试进行设置.PY检测系统并适应 相应的必要路径. 但是最好的事情肯定是一个包裹 - 但是,我不是 意识到有任何支持. 但是这里的外观可能是一个开始:http://wiki.debian.org/debianpythonfaq diez
# 回答2

我会创建包裹,因此将注意力限制在 要支持的系统. 对于rpm,有一个distutils bdist_rpm命令,可以帮助您 生成RPM. otoh,写一个.spec实际上可能更容易 归档并构建RPM"手动". 对于.deb,还有一个bdist_deb distutils命令(尽管没有 标准python分布的一部分),同样,它可能更容易 使用标准的Debian包装工具链(即 显式debian/ subdirectory,最初用DH_MAKE填充). 无论哪种情况,最好看源软件包都是一个好主意 快速开始. FWIW,Debian *不 *将守护程序程序放入 /usr /bin中. Debian 遵循FHS,指定系统二进制文件进入 /usr/sbin. /usr/bin仅限于用户程序. 问候, 马丁

标签: python

添加新评论