2013-06-27 94 views
3

我有一个运行守护进程类服务的python脚本,现在我创建了python软件包。我从那里创建了一个.deb软件包,但是我希望脚本能够与新贵一起运行,但是我不能在安装.deb软件包时自动将文件写入/ etc/init ubuntu文件夹,这样我的守护程序就不会'必须在重启时手动启动。我不知道如果我解释这很好,但我不知道怎么解释它,还应该python脚本.deb ubuntu软件包安装守护进程

我有: python_script.py - >运行蟒蛇守护

python_script。 tar.gz的 - > Python包

我需要什么:

python.deb - >其安装Python脚本,并设置了新贵我的蟒蛇凭证,以便它作为服务运行/守护

回答

5

你应该寻找debian packaging doc for python,其他可能有用的工具是stdeb工具,这是一个Python到Debian源代码包转换实用程序。

对于运行它,你需要创建一个脚本init.d中一个守护进程(你可以看到如何,并here一个更完整的例子),你可以在包中添加的init.d脚本,然后调用“ update-rc.d myscript默认值“从python.deb的postinst脚本中调用,并从prerm脚本中调用”update-rc.d -f myscript remove“。

+0

嗯,我知道锄头来创建软件包,我的问题是,通常软件包并不是新东西的东西,我的问题是“如何创建一个自定义安装来设置一个python脚本作为一个暴发户的守护进程”... – Anze

+0

我已经更新了答案 – Cesar

+0

不错!我们正在接近!在哪个脚本的哪一部分应该将包中的init.d文件移动到etc/init.d?怎么样?我应该如何编辑postinst脚本来运行“update-rc.d myscript默认值”?我应该如何使用自定义postinst编译包?只要'dpkg-buildpackage -us -uc'覆盖postinst ?? – Anze

3

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

dh_installinit是debhelper的程序,它是负责 安装暴发户的工作文件或init脚本以及相关违约 文件到包材的目录,以及在前一种情况下提供 兼容性处理非新贵系统。

请参阅dh_installinit

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

另请参阅Packaging New Software

我使用这种方法来创建Gearman作业服务器套件组。放置gearman-job-server.upstart就足够了。

+0

我设法改变所有的文件,我需要手动设置init和一切,但现在即使我使用命令“sudo find”重建md5checksum文件。型f! -regex'。*。hg。*'! -regex'。*?debian-binary。*'! -regex'。*?DEBIAN。*'-printf'%P'| xargs md5sum> DEBIAN/md5sums'安装软件包'shack'时出现此警告:软件包质量差; Lintian检查结果为/../dist/deb_dist/shack-0.1.1-new.deb: E:python-shack:控制文件具有不良权限md5sums 0664!= 0644 E:python-shack:错误的文件拥有者uid或gid debian/1000/1000 – Anze