2017-10-24 13 views
0

私はPython & Django Frameworkをしばらくの間、Ubuntu 16.01で作業してきました。私はQシステム(Celery)や他のいくつかの拡張アプリケーションでDjangoを使っていました。毎回すべてのアプリケーションを実行しようとすると、開発サーバー "{python manage.py runserver}"を実行してから、セロリーワーカー "{セロリー-Aファイル名ワーカー-l情報}"を実行する必要があります。私が働くたびに、ディレクトリに入り、起動するまでには数分かかります。私はサーフしてサービスとしてのセットアップという考えを思いついた。例:サービス名: "pyd" "{sudo pyd start}"を実行するだけでDjango Development ServerとCeleryが起動し、 "{sudo pyd stop}"を実行するとDjango &が停止します。UbuntuサービスUpstartまたはSystemD、サービスとしてのDjango開発サーバー

私は周りを検索しようとすると、物事は "Upstart"と "Systemd"の間で混乱し始めます。

私は、DjangoとCeleryの両方をUbuntuで動作させるサービスとして作る方法を提案できますか? "Upstart"の間& "Systemd"どちらが良いですか?

サンプルを示すソースコードが評価されます。

ありがとう

+0

check [immortal](https://immortal.run) – nbari

答えて

0

アップスタートを使用してこれを行うことができます。

インストール後、/etc/init/ディレクトリに移動します。 ファイルxyz.confを作成し、行を追加します:あなたはvirtualenvのを使用している場合

cd /path/to/your/manage.py/file 
exec python manage.py runserver & celery -A filename worker -l info 

、上記の前に次の行を追加します。

pre-start script 
    #activate virtual environment 
    source env-name/bin/activate 
end script 

を今、あなたはとジャンゴのDev Serverとセロリを開始することができますsudo start xyzコマンドを発行してサービスを開始するには、sudo stop xyzを発行してサービスを停止し、sudo status xyzを発行してサービスのステータスを確認します。

xyz.confは、/var/log/upstart/xyz.logにログインします。次のコマンドでログを表示できます。sudo tail -f /var/log/upstart/xyz.log

+0

私はすでにあなたが言ったことを試みます。それでも動作しません。 "{start sudo start x1}} 私は端末をチェックしようとしました。"ジョブを開始できませんでした " " init-checkconf x1 "で構文をチェックしようとしています。 構文 –

+0

内容: のchdirデスクトップ/新規フォルダ 幹部のpythonは、私が "CD" ショーのエラー以来、 "CHDIR" を使用 のrunserver管理します。 –

+0

あなたのアップスタートのインストールは正しいですか? http://upstart.ubuntu.com/getting-started.html –

0

あなたは、セットアップセロリはデーモンサービスとして、以下の手順に従うことができ

ステップ1:セロリのinitスクリプト

コピーしたディレクトリ/etc/init.d/celerydでこのscriptファイル(celerydます

これを設定する手順は、上記のソースに記載されています。

ステップ2:

セロリの設定を設定する今、このファイルは、/ etc/default/celerydにセロリの設定を構成し、このexampleはあなたの一般的な設定ファイルを提供します。

今、あなたは、次のコマンド

sudo service celeryd start 

sudo service celeryd stop 

または任意の他のサービスのコマンドを使用してサービスとしてセロリを実行することができます。

+0

ありがとうございます。 –

+0

本当に役に立ちましたが、とにかくUbuntu Upstartを使ってアプリサービスを作ろうとしたことがありますか?私はDjangoを使って作業していますが、 "python manage.py runserver"と入力しなくても、 "sudo start djservice"、 - > Django startのようなコマンドラインでサービスしたいと思っています。 –

関連する問題