2015-11-07 97 views
0

我使用烧瓶作为我的UI的网络服务器(这是一个简单的网络界面,它通过网络摄像头在ubuntu上使用gstreamerframegrabber同时/有点简单的播放器)在启动系统后自动启动python flask webserver,并保持它到最后

每次我需要运行命令"python main.py"手动从命令提示符运行服务器。

我已经试过init.d解决方案,甚至写一个简单的shell脚本并重新启动上启动系统后,每次启动它,但它不能保持服务器正常运行,直到结束(只是调用服务器和终止但我猜)

有任何解决方案,可以帮助我每次启动Web服务器上启动引导系统后,并保持它和运行?

我想我的系统配置为直接引导到浏览器,不想有任何需要用户更多的动作。

任何类型的建议/帮助表示赞赏。

回答

3

我想利用主管建议,文档是here


一个非常简单的演示目的,你安装了它,并完成设置,触及新的文件这样的后:

[program:flask_app]                 
command = python main.py          
directory = /dir/to/your/app        
autostart = true                 
autorestart = true 

然后

$ sudo supervisorctl update 

现在,你要善于去。 (注意:分发包已经集成到服务管理基础设施中,如果您使用其他服务,请参阅here

检查您的应用程序是否正在运行:

$ sudo supervisorctl status 

对于生产,你可以使用nginx的+ uwsgi +主管。烧瓶部署文档here

+0

我也有建议主管作为管理任何长期运行过程中的最佳解决方案。我在制作中多次使用它,并且非常高兴。 –

+0

那么,我做了这个解决方案,并基于它的状态,我可以说它是保持服务器运行成功!但我遇到了另一个问题,看起来管理程序以root用户身份运行服务器(我希望它以当前用户的身份调用它),并且因为录制过程失败。 我已经把配置文件放入/etc/supervisor/conf.d(我必须通过sudo来做)是否会造成问题? 还有一件事,在用户界面上的选项之一是显示与gstreamer网络摄像头的预览,这也失败了这个错误: 无法初始化X输出 –

+0

@SinaSh 1.没问题,我也把它那里。我使用root权限运行主管,这很好。你为什么想用当前用户调用它?抱歉,我之前没有关于网络摄像头的代码体验。你可以谷歌它或提出更详细的信息另一个问题。 –

相关问题