问题 芹菜花作为守护进程


我用redis后端运行芹菜。 我想在ceos 6.2上运行芹菜花作为守护进程。

我知道flower是一个Tornado应用程序,所以我应该使用一个进程来运行龙卷风应用程序作为deamon。

通常开始开花我使用这个命令:

芹菜花--broker = redis:// localhost

我在下面的链接中读到了我需要创建一个python脚本: http://www.charleshooper.net/blog/python-starting-tornado-apps-at-boot-using-upstart/ (Startflower.py)

import tornado.ioloop
import tornado.web
import tornado.httpserver 

if __name__ == "__main__":
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(port)
    tornado.ioloop.IOLoop.instance().start()

但是,我不确定将什么放在'application'变量中。我试过'芹菜花 - 经纪人= redis:// localhost'和'芹菜花',但都没有用

我需要做些什么来让它作为守护进程工作?


10271
2017-11-27 07:06


起源



答案:


您可以保留它作为命令行程序并在其下运行它 supervisord 守护进程。这是python世界中的常见解决方案(虽然supervisord可以使用任何命令,而不仅仅是python),并且我一直使用它。

Supervisord让程序认为它仍在终端中运行。有很多例子如何使用supervisord,但是我可以找到一个用于python代理服务器的例子 这里,向下滚动到“将代理服务器安装为服务”。


11
2017-11-27 21:09



supervisord不适用于Python3。还有其他方法吗? - David D.
@DavidD。我使用Mozilla的Circus而不是Supervisor,可以使用Python2,Python3和Python4,尽管还没有4,但它就是那么棒。 - Meitham


答案:


您可以保留它作为命令行程序并在其下运行它 supervisord 守护进程。这是python世界中的常见解决方案(虽然supervisord可以使用任何命令,而不仅仅是python),并且我一直使用它。

Supervisord让程序认为它仍在终端中运行。有很多例子如何使用supervisord,但是我可以找到一个用于python代理服务器的例子 这里,向下滚动到“将代理服务器安装为服务”。


11
2017-11-27 21:09



supervisord不适用于Python3。还有其他方法吗? - David D.
@DavidD。我使用Mozilla的Circus而不是Supervisor,可以使用Python2,Python3和Python4,尽管还没有4,但它就是那么棒。 - Meitham


最好使用systemd将flower作为守护进程运行。 Supervisord与已成为新的Python3不兼容 最佳实践。而且,systemd是一个 标准流程经理 对于大多数现代Linux发行版。

我在Ubuntu 16.04中使用systemd作为花的守护进程。虽然我相信其他发行版的设置不会有太大的不同。

  1. 创建一个名为systemd的配置文件,例如, flower.service。就我而言,它位于 /etc/systemd/system 夹。它应该包含:

    [单元]
    描述=花芹菜服务
    
    [服务]
    用户= your_user
    基团= WWW的数据
    WorkingDirectory = /无功/网络/项目的工作目录
    ExecStart = / home / user / miniconda3 / envs / virtualenv / bin / flower --port = 5555 --loglevel = info -A yourproject
    重启=接通故障
    类型=简单
    
    [安装]
    WantedBy = multi-user.target
    

基本上,您可以在终端中设置所有可用选项。顺便说一句,你应该使用花 虚拟环境。确保您的用户拥有工作目录的权限。

  1. 重新加载systemd守护程序 sudo systemctl daemon-reload

  2. 开始一个花守护进程 sudo systemctl start flower

就这样! 这个 很好的教程帮助我完成了配置过程。


5
2017-10-03 16:12