Unify the way OpenStack projects daemonize servers

Registered by Jay Pipes

Currently, Nova, Glance, and Swift use different methods for start/stop/reloading server daemons. Glance and Swift use a "control" script (swift-init and glance-control) that manages this daemonization. Nova relies on installation of upstart scripts in the packaging and does not have any daemonization wrapper that can be used in testing.

Swift dev Clay Gerrard moved most of the daemonization code into a Manager class: http://bazaar.launchpad.net/~hudson-openstack/swift/trunk/view/head:/swift/common/manager.py. With a bit of work, I think we could use this code as the basis for a server daemon manager class in the openstack-common project and use it for all OpenStack projects.

Would be good to come to some common ground regarding:

a) Should we have a standard daemonization wrapper script? This is very useful in testing, when you don't want to install software and want control over the pidfile, running user, etc
b) What are the "common" options for daemonization (--pid-file, --uid, --gid, etc) and do we want to ensure OpenStack servers all adhere to these options?

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Jay Pipes
Direction:
Needs approval
Assignee:
None
Definition:
Drafting
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.