26

基本的な CherryPy チュートリアル ( http://www.cherrypy.org/wiki/CherryPyTutorial ) に従いました。議論されていないことの 1 つは、展開です。

CherryPy アプリをデーモンとして起動し、「それを忘れる」にはどうすればよいですか? サーバーが再起動するとどうなりますか?

標準的なレシピはありますか?たぶん、サービススクリプトを作成するもの (/etc/init.d/cherrypy...)

ありがとう!

4

4 に答える 4

18

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()

SysV スタイルの適切な HOWTO がここにあります。

要約する:

  1. /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."  
    
  2. 実行可能にする

    sudo chmod +x /etc/init.d/MyDaemonApp

  3. 実行update-rc.dして、適切なランタイム ディレクトリに適切なリンクを作成します。

    sudo update-rc.d MyDaemonApp defaults 80

  4. sudo /etc/init.d/MyDaemonApp

于 2011-03-18T14:22:32.430 に答える
14

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

于 2009-09-23T01:44:58.307 に答える
5

私はチュートリアル/プロジェクトのスケルトン、cherrypy-webapp-skeletonを作成しました。この目標は、Web 開発者が Debian* に実際の CherryPy アプリケーションをデプロイするためのギャップを埋めることでした。cherrydデーモン権限ドロップ用に拡張された機能です。init.dnginxmonit、の重要なスクリプトと構成ファイルも多数ありますlogrotate。チュートリアルの部分では、物事を組み立てて、最終的にそれを忘れる方法について説明します。スケルトン部分は、CherryPy webapp プロジェクト アセットの可能な配置方法を提案します。


※Squeeze用に書いていますが、Wh​​eezyもほぼ同じです。

于 2014-06-28T13:27:24.440 に答える