4

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

我所拥有的:python_script.py -> 运行一个 python-daemon

python_script.tar.gz -> python 包

我需要的:

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

4

2 回答 2

5

你应该寻找python 的 debian 打包文档,其他有用的是stdeb工具,一个 Python 到 Debian 源包转换实用程序。

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

于 2013-06-27T12:43:40.990 回答
3

如果您使用 Ubuntu 标准方式创建 deb 包,您只需将 package-name.upstart 放在 debian 文件夹中。

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

请参阅dh_installinit

我发现从 Bazaar 分支构建Debian 包是创建 deb 包的最简单方法。

另请参阅打包新软件

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

于 2013-06-28T21:26:55.390 回答