Package: hostout.supervisor
Installinghostout.supervisoris a plugin forcollective.hostout. Hostout is azc.buildoutrecipe.First you need a workingbuildoutusing supervisor. Here’s a really simple
one:>>> write('buildout.cfg',
... """
... [buildout]
... parts = helloworld
...
... [helloworld]
... recipe = zc.recipe.egg:scripts
... eggs = zc.recipe.egg
... initialization = import sys
...   main=lambda: sys.stdout.write('all your hosts are below to us')
... entry-points = helloworld=__main__:main
...
... [supervisor]
... recipe = collective.recipe.supervisor
... programs = 10 helloworld bin/helloworld
...
... """)>>> print system('bin/buildout -N')
Installing helloworld.
Generated script '/sample-buildout/bin/helloworld'.>>> print system('bin/helloworld')
all your hosts are belong to usGoogle “buildout” and your favourite app framework to find out how to build
it.Next we addhostoutto our buildout, and extend hostout by adding thehostout.supervisorplugin using theextendsoption.>>> write('buildout.cfg',
... """
... [buildout]
... parts = helloworld host
...
... [helloworld]
... recipe = zc.recipe.egg:scripts
... eggs = zc.recipe.egg
... initialization = import sys
...   main=lambda: sys.stdout.write('all your hosts are below to us')
... entry-points = helloworld=__main__:main
...
... [supervisor]
... recipe = collective.recipe.supervisor
... programs = 10 helloworld bin/helloworld
...
... [host]
... recipe = collective.hostout
... host = 127.0.0.1:10022
... extends = hostout.supervisor
... parts = hellowworld supervisor
...
... """)>>> print system('bin/buildout -N')
    Updating helloworld.
    Installing host.
    Generated script '/sample-buildout/bin/hostout'.
    ...hostout.supervisor commands>>> print system('bin/hostout host')
    cmdline is: bin/hostout host1 [host2...] [all] cmd1 [cmd2...] [arg1 arg2...]
    Valid commands are:
    ...
       supervisorboot     : Installs supervisor into your init.d scripts in order to ensure that supervisor is started on boot
    ...
       supervisorctl      : Takes command line arguments and runs supervisorctl on the remote host
       supervisorshutdown : Shutdown the supervisor daemon
       supervisorstartup  : Start the supervisor daemon
    ...The following options may be used:supervisorThe name of the supervisor part to stop and restartinit.dIf set, thesupervisordscript will be linked intoinit.dso any
machine restart will also start supervisor.Automatic startup and shutdown during deploymentIn addition, the supervisor plugin will shutdown supervisor during
pre-deployment and start up supervisor during post-deployment.>>> print system('bin/hostout host1 deploy')
    Hostout: Running command 'predeploy' from 'hostout.supervisor.fabfile'
    Logging into the following hosts as :
        127.0.0.1
    [127.0.0.1] sudo: /var/lib/plone/host1/bin/supervisorctl shutdown || echo 'Failed to shutdown'
    ...
    Hostout: Running command 'postdeploy' from 'hostout.supervisor.fabfile'
    ...
    [127.0.0.1] sudo: /var/lib/plone/host1/bin/supervisord
    ...
    [127.0.0.1] sudo: /var/lib/plone/host1/bin/supervisorctl status
    ...
    Hostout: Running command 'postdeploy' from 'collective.hostout.fabfile'
    ...CreditsDylan Jay ( software at pretaweb dot com )Release History1.05 (2014-05-29)tidy up readme [Jean Jordaan]fixed bootstrip install/uninstall [Adam Terrey]1.0a4 (2010-04-13)allows buildout user only deploy1.0a3 (2010-03-21)new sudosupervisor for when you need to boot as root [Dylan Jay]Made compatible with collective.hostout 1.0a5 [Dylan Jay]Improved startup and shutdown so use only buildout-user + reload rather than “supervisor shutdown” [Dylan Jay]1.0a2 (2010-06-03)falfile entrypointbetter init.d script1.0a1 (2010-02-13)Moved out of collective.hostoutupgraded it to fabric 1.0 and python 2.6