19

ここのコードから /etc/defaults/ に celeryd ファイルを作成しました:

https://github.com/celery/celery/blob/3.0/extra/generic-init.d/celeryd

今、デーモンとして celeryd を実行してこれを実行したい場合: sudo /etc/init.d/celerdy コマンドが見つからないと表示されます。どこが間違っていますか?

4

5 に答える 5

22

ここで何をしているのかわかりませんが、セロリをデーモンとして実行する手順は次のとおりです。

  1. リンク https://github.com/celery/celery/blob/3.0/extra/generic-init.d/celeryd/etc/init.dで参照したファイルを、次の名前でフォルダー にコピーする必要がありますceleryd
  2. 次に、上記のスクリプトで使用される/etc/default名前 のフォルダーに構成ファイルを作成する必要があります 。celerydこの構成ファイルは基本的に、上記のスクリプトで使用される特定の変数とパスを定義します。構成例を次に示します。
  3. このリンクGeneric init scriptsはプロセスを説明しており、参照用に使用できます
于 2013-01-11T10:52:26.623 に答える
8

私は通常、この目的のためにスーパーバイザー(およびdjango-supervisor)を使用します。そうすれば、アプリケーション内の各プロセスをデーモン化する方法を理解する必要はありません (少なくとも、django をホストする Web サーバーと、セロリ、およびそれらの両方をサポートするために使用するその他のミドルウェアがあれば現実的です)。スーパーバイザーは自分自身をデーモンとして実行する方法を知っており、他のすべてのプロセスはスーパーバイザーの子として実行されます。

于 2013-05-09T20:57:37.127 に答える
4

Marcin が彼の回答で説明したように、スーパーバイザーは通常人々が最終的に使用するものですが、python3 で動作するものを探していて、python3 をサポートすると思われるスーパーバイザーのバージョン 4 を待つことができない場合は、行くことができますサーカスと。インストール後、デーモン化するすべてのプロセスを含む circus.ini ファイルが必要です。次に、そのサンプル circus.ini を次のように実行します。

[watcher:celery]
cmd = full_path/python3.4 full_path/manage.py celeryd -B -l info

[watcher:celerycamera]
cmd = full_path/python3.4 full_path/manage.py celery events --camera=djcelery.snapshot.Camera

[watcher:dceleryflower]
cmd = full_path/python3.4 full_path/manage.py celery flower -A your_app_name --basic_auth=username:password --port=5555 

詳細が必要な場合は、ここに同じ関連の投稿があります。誰かの時間を節約できることを願っています。ありがとう

于 2016-04-07T06:06:15.063 に答える
0

注: ubuntu 16.04 では、.conf ファイルを使用した anser が機能しなくなりました。

.service ファイルを作成し、これを /etc/systemd/system/ に配置しました

使うことができます

sudo サービス myservice ステータス

sudo サービス myservice 開始

sudo サービス myservice 停止

コマンドとして

たとえば、このファイル:

myservice.service:

[Unit] 
Description=My celery worker 

[Service]
WorkingDirectory=/srv/my-project-path
User=buildout
Group=buildout
Restart=on-failure
RestartSec=20 5
ExecStart=/srv/my-project/bin/django celeryd -BE

[Install]
WantedBy=multi-user.target
Alias=myservice.service

私は buildout を使用しているため、bin/django の setad では、ほとんどのユーザーは python へのパスを使用し、代わりに mange.py を使用する必要があることに注意してください。

ベース: http://minecraft.gamepedia.com/Tutorials/Ubuntu_startup_script (systemd セクションを参照)

于 2016-10-09T21:22:46.263 に答える