Metadata-Version: 1.0
Name: collective.recipe.supervisor
Version: 0.1
Summary: A buildout recipe to install supervisor
Home-page: https://svn.plone.org/svn/collective/buildout/collective.recipe.supervisor
Author: Mustapha Benali
Author-email: mustapha@headnet.dk
License: ZPL
Description: .. contents::
        
        - Code repository: https://svn.plone.org/svn/collective/collective.recipe.supervisor
        
        Change history
        **************
        
        0.1.0 (2008-04-21)
        ==================
        
        - Created recipe with ZopeSkel [Mustapha Benali].
        
        Detailed Documentation
        **********************
        
        This recipe when used will do the following:
        
        * install ``supervisor`` and all its dependecies.
        
        * generates the supervisord and supervisorctl scripts in the bin directory
        
        * generates a configuration file to be used by supervisord and supervisorctl
        scripts
        
        Supported options
        =================
        
        The recipe supports the following options:
        
        port
        The port nummber supervisord listen to. ie: 9001. Can be given as host:port
        like 127.0.0.1:9001. Defaults to 127.0.0.1:9001
        
        user
        The username required for authentication to supervisord
        
        password
        The password required for authentication to supervisord
        
        supervisord-conf
        Full path to where the recipe puts the supervisord configuration file.
        Defaults to ${buildout:directory}/bin/supervisord.conf
        
        logfile
        The full path to the supervisord log file. Defaults to
        ${buildout:directory}/var/log/supervisord.log
        
        pidfile
        The pid file of supervisord. Defaults to
        ${buildout:directory}/var/supervisord.pid
        
        logfile-maxbytes
        The maximum number of bytes that may be consumed by the activity log file
        before it is rotated. Defaults to 50MB
        
        logfile-backups
        The number of backups to keep around resulting from activity log file
        rotation. Defaults to 10
        
        loglevel
        The logging level. Can be one of critical, error, warn, info, debug, trace,
        or blather. Defaults to info
        
        nodaemon
        If true, supervisord will start in the foreground instead of daemonizing.
        Defaults to false
        
        serverurl
        The URL that should be used to access the supervisord server. Defaults to
        http://127.0.0.1:9001
        
        programs
        A list of programs you want the supervisord to control. One per line.
        The format of a line is as follow:
        
        priority process_name executable [[directory] [[redirect_stderr]]]
        
        If not given the redirect_stderr defaults to false.
        If not given the directory option defaults to the directory containing the
        executable. See below for an example.
        
        
        
        Example usage
        =============
        
        We'll start by creating a buildout that uses the recipe::
        
        >>> write('buildout.cfg',
        ... """
        ... [buildout]
        ... parts = supervisor
        ...
        ... [zeo]
        ... location =
        ... [instance1]
        ... location =
        ... [instance2]
        ... location=
        ...
        ... [supervisor]
        ... recipe = collective.recipe.supervisor
        ... port = 9001
        ... user = mustapha
        ... password = secret
        ... serverurl = http://supervisor.mustap.com
        ... programs =
        ...       10 zeo ${buildout:bin-directory}/zeo ${zeo:location}
        ...       20 instance1 ${buildout:bin-directory}/instance1 ${instance1:location} true
        ...       30 instance2 ${buildout:bin-directory}/instance2
        ...       40 maildrophost ${buildout:bin-directory}/maildropctl
        ... """)
        
        
        Running the buildout gives us::
        
        >>> print system(buildout)
        Installing supervisor.
        Getting distribution for 'supervisor'.
        ...
        Generated script '/sample-buildout/bin/supervisorctl'.
        Generated script '/sample-buildout/bin/supervisord'.
        <BLANKLINE>
        
        You can now just run the supervisord like this::
        
        $ bin/supervisord
        
        and control it with supervisorctl::
        
        $ bin/supervisorctl
        
        now, get a look to the generated supervisord.conf file::
        
        >>> cat('bin', 'supervisord.conf')
        <BLANKLINE>
        [inet_http_server]
        port = 9001
        username = mustapha
        password = secret
        <BLANKLINE>
        [supervisord]
        logfile = /sample-buildout/var/log/supervisord.log
        logfile_maxbytes = 50MB
        logfile_backups = 10
        loglevel = info
        pidfile = /sample-buildout/var/supervisord.pid
        nodaemon = false
        <BLANKLINE>
        [supervisorctl]
        serverurl = http://supervisor.mustap.com
        <BLANKLINE>
        [rpcinterface:supervisor]
        supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
        <BLANKLINE>
        <BLANKLINE>
        [program:zeo]
        command = /sample-buildout/bin/zeo
        process_name = zeo
        directory = /sample-buildout/bin
        priority = 10
        redirect_stderr = false
        <BLANKLINE>
        <BLANKLINE>
        [program:instance1]
        command = /sample-buildout/bin/instance1
        process_name = instance1
        directory = true
        priority = 20
        redirect_stderr = false
        <BLANKLINE>
        <BLANKLINE>
        [program:instance2]
        command = /sample-buildout/bin/instance2
        process_name = instance2
        directory = /sample-buildout/bin
        priority = 30
        redirect_stderr = false
        <BLANKLINE>
        <BLANKLINE>
        [program:maildrophost]
        command = /sample-buildout/bin/maildropctl
        process_name = maildrophost
        directory = /sample-buildout/bin
        priority = 40
        redirect_stderr = false
        <BLANKLINE>
        
        and if we look to generated supervisord script we will see that the
        configuration file is given as argument with the '-c' option::
        
        >>> cat('bin', 'supervisord')
        ...
        <BLANKLINE>
        ...
        <BLANKLINE>
        import sys; sys.argv.extend(["-c","/sample-buildout/bin/supervisord.conf"])
        <BLANKLINE>
        import supervisor.supervisord
        <BLANKLINE>
        if __name__ == '__main__':
        supervisor.supervisord.main()
        
        
        Contributors
        ************
        
        Mustapha Benali, Author
        
        
        Download
        ********
        
Keywords: buildout recipe supervisor
Platform: UNKNOWN
Classifier: Framework :: Buildout
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: Zope Public License
