python脚本到.deb ubuntu包安装一个守护进程

时间:2013-06-27 12:05:42

标签: ubuntu python-2.7 daemon deb upstart

我有一个python脚本,它运行一个类似守护进程的服务,现在我创建了python包。我从那里创建了一个.deb包,但我希望脚本能够与upstart一起运行,但是当安装.deb包时,我无法自动编写/ etc / init ubuntu文件夹中的文件,以便我的守护进程不会必须在重启时手动启动。我不知道我是否解释得这么好,但我不知道如何更好地解释它......

我有什么: python_script.py - >运行python-daemon

python_script.tar.gz - > python包

我需要的是什么:

python.deb - >安装python脚本并为我的python脚本设置upstart,以便它作为服务/守护进程运行

2 个答案:

答案 0 :(得分:5)

您应该查找debian packaging doc for python,其他可能有用的是stdeb工具,Python到Debian源包转换实用程序。

要将其作为守护进程运行,您需要创建一个init.d脚本(您可以看到如何herehere更完整的示例),您可以添加init.d脚本在包中,然后从python.deb的postinst脚本调用“update-rc.d myscript defaults”,并从prerm脚本调用“update-rc.d -f myscript remove”。

答案 1 :(得分:3)

如果你使用Ubuntu标准方式创建deb包,你需要做的就是将package-name.upstart放在debian文件夹中。

  

dh_installinit是一个负责的debhelper程序          安装具有关联默认值的upstart作业文件或init脚本          文件到包构建目录,并在前一种情况下提供          非upstart系统的兼容性处理。

请参阅dh_installinit

我发现构建Debian package from Bazaar branch是创建deb包的最简单方法。

同样请参阅Packaging New Software

我使用这种方法创建Gearman Job Server包。放置gearman-job-server.upstart就足够了。