基本的な CherryPy チュートリアル ( http://www.cherrypy.org/wiki/CherryPyTutorial ) に従いました。議論されていないことの 1 つは、展開です。
CherryPy アプリをデーモンとして起動し、「それを忘れる」にはどうすればよいですか? サーバーが再起動するとどうなりますか?
標準的なレシピはありますか?たぶん、サービススクリプトを作成するもの (/etc/init.d/cherrypy...)
ありがとう!
基本的な CherryPy チュートリアル ( http://www.cherrypy.org/wiki/CherryPyTutorial ) に従いました。議論されていないことの 1 つは、展開です。
CherryPy アプリをデーモンとして起動し、「それを忘れる」にはどうすればよいですか? サーバーが再起動するとどうなりますか?
標準的なレシピはありますか?たぶん、サービススクリプトを作成するもの (/etc/init.d/cherrypy...)
ありがとう!
Daemonizer は非常に簡単に使用できます。
# this works for cherrypy 3.1.2 on Ubuntu 10.04
from cherrypy.process.plugins import Daemonizer
# before mounting anything
Daemonizer(cherrypy.engine).subscribe()
cherrypy.tree.mount(MyDaemonApp, "/")
cherrypy.engine.start()
cherrypy.engine.block()
要約する:
/etc/init.d
その呼び出しでアプリケーションの名前の付いたファイルを作成します/bin/sh
sudo vim /etc/init.d/MyDaemonApp
#!/bin/sh
echo "Invoking MyDaemonApp";
/path/to/MyDaemonApp
echo "Started MyDaemonApp. Tremble, Ye Mighty."
実行可能にする
sudo chmod +x /etc/init.d/MyDaemonApp
実行update-rc.d
して、適切なランタイム ディレクトリに適切なリンクを作成します。
sudo update-rc.d MyDaemonApp defaults 80
sudo /etc/init.d/MyDaemonApp
CherryPy用のDaemonizerプラグインがデフォルトで含まれています。これは、起動するのに便利ですが、単純なケースで最も簡単な方法は、cherrydスクリプトを使用することです。
> cherryd -h
Usage: cherryd [options]
Options:
-h, --help show this help message and exit
-c CONFIG, --config=CONFIG
specify config file(s)
-d run the server as a daemon
-e ENVIRONMENT, --environment=ENVIRONMENT
apply the given config environment
-f start a fastcgi server instead of the default HTTP
server
-s start a scgi server instead of the default HTTP server
-i IMPORTS, --import=IMPORTS
specify modules to import
-p PIDFILE, --pidfile=PIDFILE
store the process id in the given file
init.dスクリプトに関する限り、Googleで検索できる例があると思います。
そして、cherryd
はあなたの中にあります:
virtualenv / lib / python2.7 / site-packages / cherrypy / cherryd
または:https ://bitbucket.org/cherrypy/cherrypy/src/default/cherrypy/cherryd
私はチュートリアル/プロジェクトのスケルトン、cherrypy-webapp-skeletonを作成しました。この目標は、Web 開発者が Debian* に実際の CherryPy アプリケーションをデプロイするためのギャップを埋めることでした。cherryd
デーモン権限ドロップ用に拡張された機能です。init.d
、nginx
、monit
、の重要なスクリプトと構成ファイルも多数ありますlogrotate
。チュートリアルの部分では、物事を組み立てて、最終的にそれを忘れる方法について説明します。スケルトン部分は、CherryPy webapp プロジェクト アセットの可能な配置方法を提案します。
※Squeeze用に書いていますが、Wheezyもほぼ同じです。