0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Tornado (Python) のセットアップとデーモン化

Posted at

基本的な流れ

Tornadoでの開発開始までのセットアップは通常以下のような流れになります。

  1. 仮想環境の構築(必要な場合)
  2. パッケージのインストール
  3. アプリケーションファイルの設置
  4. サーバー起動スクリプトの作成
  5. サーバーのデーモン化

パッケージの導入は以下のようなコマンド操作の流れを実行します。(下の例では仮想環境を .venv に導入)

仮想環境の導入と有効化
$ python -m venv .venv
$ source .venv/bin/activate
仮想環境でのTornadoの導入
(.venv)$ pip install tornado

これでTornadoの導入は終了です。ちなみに、仮想環境から抜ける場合は、コマンドラインで deactivate を実行します。

DeracioTSS

DeracioTSSはTornadoでのアプリケーション開発のセットアップの中で、アプリケーションファイルの設置からサーバーの起動用シェルスクリプトの作成までを対話式CLIで自動化し、サーバーのデーモン化に必要な .service ファイルの作成までを行います。

インストール

スクリプトファイル tss.py をGitHubからダウンロードします。

wget https://raw.githubusercontent.com/DERaC-IO/DeracioTSS/f6691d177de800434593cb336f102c1181c73439/tss.py

次に、スクリプトの実行には subprocessquestionary が必要になるので、それらを仮想環境に導入します。

(.venv)$ pip install subprocess questionary

必要なライブラリの導入が完了したあと tss.py を実行します。

(.venv)$ python tss.py

正常に起動すれば、以下のようなバナーが現れるはずです。

    _____                                    ______     __       __  
    /    )                           ,         /      /    )   /    )
---/----/----__---)__----__----__--------__---/-------\--------\-----
  /    /   /___) /   ) /   ) /   ' /   /   ) /         \        \    
_/____/___(___ _/_____(___(_(___ _/___(___/_/______(____/___(____/___                                                                 

Tornado Startup Script v1.0.0
Copyright (c) 2023 DERaC, LLC.
MIT License

? Starting a new project?

対話式プロセス

CLIアプリケーションは、アプリケーションを実行したディレクトリ <PROJECR_ROOT> の中に、対話式で以下のファイルとフォルダを生成します。(ファイル・フォルダ名はデフォルト)

<PROJECR_ROOT>
    │
    ├─ app.py            (Tornadoアプリケーション)
    │
    ├─ server.sh        (サーバー起動シェルスクリプト)
    │
    ├─ tornadod.service (システムデーモンファイル)
    │
    ├─ templates        (テンプレートフォルダ)
    │    │
    │    └─ index.html  (トップページ)
    │ 
    └─ static           (静的ファイルフォルダ)

このプロセスの中で、以下の質問があるので、順番に答えていきます。(パスなどは自動的に推測されて表示されます)

  1. プロジェクト名
  2. テンプレート名
  3. 静的ファイルフォルダ名
  4. 起動するポート番号
  5. アプリケーションファイル名
  6. python3 へのパス
  7. 使用するシェルの種類
  8. シェルへのパス
  9. サーバー起動シェルスクリプトファイル名
  10. サーバー起動シェルスクリプトのパーミッション
  11. システムデーモンファイル名
  12. デーモン化するシステムの説明(名称)
  13. サーバー起動シェルスクリプトがあるディレクトリへのパス
  14. サーバー起動シェルスクリプトへのパス
  15. デーモンを起動するユーザー名
  16. デーモンを起動するグループ名
  17. システムデーモンファイルのパーミッション

デーモン化

対話式でのプロセスが完了したら、システムデーモンファイルをシステムデーモンが認識できるフォルダ(この例では /etc/systemd/system/ )に移動させて起動します。( daemon-reload を忘れずに)

$ sudo mv tornadod.service /etc/systemd/system/
$ sudo systemctl daemon-reload
$ sudo systemctl start tornadod

正常に起動したら、以下のコマンドで自動的に起動できるようにします。( --now オプションは自動起動の設定と同時にシステムを起動させる場合に付与)

$ sudo systemctl enable tornadod --now

起動が成功したら、localhost:8000 などにアクセスすれば、下のようなページが表示されるはずです。(プロキシの設定などは別トピックなのでここでは省きます)

snapshot.png

これでTornadoアプリケーションの開発準備が整いました。 tss.py が導入済みの環境ではTornado開発初心者の開発者でも10分以内で起動できると思います!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?