我有一个python脚本,它运行一个类似守护进程的服务,现在我创建了python包。我从那里创建了一个.deb包,但我希望脚本能够与upstart一起运行,但是当安装.deb包时,我无法自动编写/ etc / init ubuntu文件夹中的文件,以便我的守护进程不会必须在重启时手动启动。我不知道我是否解释得这么好,但我不知道如何更好地解释它......
我有什么: python_script.py - >运行python-daemonpython_script.tar.gz - > python包
我需要的是什么:
python.deb - >安装python脚本并为我的python脚本设置upstart,以便它作为服务/守护进程运行
答案 0 :(得分:5)
您应该查找debian packaging doc for python,其他可能有用的是stdeb工具,Python到Debian源包转换实用程序。
要将其作为守护进程运行,您需要创建一个init.d脚本(您可以看到如何here和here更完整的示例),您可以添加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就足够了。