【问题标题】:python script to .deb ubuntu package to install a daemonpython脚本到.deb ubuntu包安装守护进程
【发布时间】:2013-06-24 22:17:04
【问题描述】:

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

我有什么: python_script.py ->运行一个python守护进程

python_script.tar.gz -> python 包

我需要什么:

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

【问题讨论】:

    标签: ubuntu python-2.7 daemon deb upstart


    【解决方案1】:

    您应该寻找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”。

    【讨论】:

    • 好吧,我知道要创建包,我的问题是通常包不会在新贵中安装东西,我的问题是“如何创建自定义安装以将 python 脚本设置为新贵的守护进程“...
    • 不错!我们越来越近了!我应该在脚本的哪个部分将包中的 init.d 文件移动到 etc/init.d?如何?我应该如何编辑 postinst 脚本以运行“update-rc.d myscript defaults”?我应该如何使用自定义 postinst 编译包?只要dpkg-buildpackage -us -uc 覆盖postinst??
    • 我可以手动更改 .deb,即使它给出了 md5 校验和错误......但无论如何,真正的问题是当我尝试从包中移动文件时 bash 找不到文件!我试图用 $PWD 和 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 找到工作目录,但什么也没有!!
    • 我几乎带着文件和所有东西到了那里,唯一的问题是当我手动更改 deb 包时,安装程​​序显示此警告:错误质量差的包。如何编译我的自定义 deb 而不会遇到这个麻烦
    【解决方案2】:

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

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

    dh_installinit

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

    参见Packaging New Software

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

    【讨论】:

    • 我设法手动更改了设置 init 所需的所有文件和所有内容,但现在即使我使用命令 sudo find . -type f ! -regex '.*.hg.*' ! -regex '.*?debian-binary.*' ! -regex '.*?DEBIAN.*' -printf '%P ' | xargs md5sum > DEBIAN/md5sums 重建 md5checksum 文件,我在安装包时也会收到此警告shack':包裹质量不好; /../dist/deb_dist/shack-0.1.1-new.deb 的 Lintian 检查结果: E: python-shack: control-file-has-bad-permissions md5sums 0664 != 0644 E: python-shack: wrong- file-owner-uid-or-gid debian/ 1000/1000
    最近更新 更多