在linux上运行web.py作为服务

时间:2013-10-08 19:28:29

标签: python centos web.py

我使用web.py创建了一个在json中返回结果的Web服务。

我在python scriptname.py 8888

的本地方框上运行它

但是,我现在想在linux机器上运行它。

如何在linux机器上将其作为服务运行?

更新

在答案之后,问题似乎不对。我知道部署过程,框架和Web服务器。也许以下背景故事会有所帮助:

我有一个小的python脚本,它将文件作为输入,并基于一些逻辑分割文件。我想使用这个脚本和我已经到位的Web前端(Grails)。我想从grails应用程序调用它,但不想通过执行命令行来执行此操作。所以我将python脚本包装为web服务。它接收两个参数并在json中返回分割文件的数量。这个web服务将由我的grails前端使用,没有别的。

所以,我只想运行这个小的web.py服务,以便它可以响应我的grails前端。

如果我错了请纠正我,但在上述之后我还需要ngix等吗?这个脚本听起来微不足道,但最终我会为它添加更多逻辑,所以我希望它可以作为Web服务,可以被Web前端使用。

2 个答案:

答案 0 :(得分:1)

一般来说,这有两个部分。

“远程和基于事件”部分:通过网络远程使用的服务需要一定的技能:能够接受(多个)连接,读取请求,处理,回复,至少说出基本的TCP / HTTP,处理死连接,如果它不仅仅是小型私有局域网,它需要是健壮的(想想DoS),也可能执行某种身份验证。

如果您的脚本愿意处理所有这些,那么它已准备好打开自己的端口并收听。我不确定web.py是否提供了所有这些功能。

当你想要运行服务器无人值守时,还有另一部分“daemonization”:在启动时运行,在正确的用户下运行,而不是阻塞你的父(ssh,init脚本或其他) ),没有打开但可能在某处登录......

为此构建了像nginx和Apache这样的服务器,并提供了mod_python或WSGI等接口,因此更简单的应用程序可以尽可能多地放弃上述内容。

所以答案是:是的,你仍然需要Nginx或类似的东西,除非:

  • 您可以自己在Python中实现它,

  • 或者您只在localhost上使用该脚本,并愿意接受一些 不稳定的风险。

然后你可以自己做。

答案 1 :(得分:0)

试试这个

python scriptname.py 8888 2>/dev/null

它将作为守护进程运行