14

redisバックエンドでセロリを実行しています。CentOS6.2でデーモンとしてセロリフラワーを実行したいと思います。

花は竜巻アプリケーションであることを理解しているので、プロセスを使用して竜巻アプリケーションをデーモンとして実行する必要があります。

通常、花を始めるには、次のコマンドを使用します。

セロリの花--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」変数に何を入れるべきかわかりません。「セロリフラワー--broker=redis:// localhost」と「セロリフラワー」を試しましたが、どちらも機能しませんでした

デーモンとして機能させるには何をする必要がありますか?

4

2 に答える 2

20

systemdを使用してflowerをデーモンとして実行することが望ましいです。Supervisordは、新しいベストプラクティスとなったPython3と互換性がありません。さらに、systemdは、最新のLinuxディストリビューションのほとんどの標準プロセスマネージャーです。

Ubuntu16.04ではsystemdをflowerのデーモンとして使用しています。セットアップは他のディストリビューションでもそれほど変わらないと思いますが。

  1. たとえば、と呼ばれるsystemd構成ファイルを作成しますflower.service。私の場合、それは/etc/systemd/systemフォルダにあります。次のものが含まれている必要があります。

    [単位]
    説明=フラワーセロリサービス
    
    [サービス]
    User = your_user
    Group = www-data
    WorkingDirectory = / var / www / project-working-directory
    ExecStart = / home / user / miniconda3 / envs / virtualenv / bin / flower --port = 5555 --loglevel = info -A yourproject
    再起動=失敗時
    Type = simple
    
    [インストール]
    WantedBy = multi-user.target
    

基本的には、端末のように利用可能なすべてのオプションを設定できます。ちなみに、仮想環境では花を使うべきです。ユーザーが作業ディレクトリに対する権限を持っていることを確認してください。

  1. systemdデーモンをリロードします sudo systemctl daemon-reload

  2. フラワーデーモンを起動します sudo systemctl start flower

それで全部です!この素晴らしいチュートリアルは、構成プロセスを完了するのに役立ちました。

于 2017-10-03T16:12:13.890 に答える
11

コマンドラインプログラムとして保持し、supervisordデーモンの下で実行できます。これはPythonの世界では一般的な解決策です(ただし、supervisordはPythonだけでなく、任意のコマンドで機能します)。私は常にこれを使用しています。

Supervisordは、プログラムがまだ端末で実行されているとプログラムに認識させます。スーパーバイザーの使用方法の例はたくさんありますが、Pythonプロキシサーバーに使用している例はここにあります。[プロキシサーバーをサービスとしてインストールする]まで下にスクロールします。

于 2012-11-27T21:09:47.090 に答える