diskimage-builder/elements/os-svc-install/bin/os-svc-daemon
Tim Miller ea57869d3e Run all openstack services in virtualenvs:
Python package dependency conflicts have been observed
to occur for certain combinations of services at certain
revision.

Running all services in virtualenvs removes the issue.

Change-Id: I100817569b43a5af3427b0ae20cebdc7d55d03a5
2013-04-02 18:13:07 -07:00

36 lines
619 B
Bash
Executable File

#!/bin/bash
set -eu
function install_upstart {
local name=$1
local user=$2
local cmd=$3
shift; shift; shift
local args=$*
cat > /etc/init/$name.conf <<EOF
start on runlevel [2345]
stop on runlevel [016]
pre-start script
mkdir -p /var/run/$user
chown -R $user:$user /var/run/$user
end script
respawn
script
exec sudo -u $user /opt/stack/venvs/$user/bin/$cmd $args
end script
EOF
}
if [ $# -lt 4 ]; then
echo "Usage: os-svc-daemon DAEMON_NAME USER COMMAND [ARG[ARG[...]]]"
exit 1
fi
# TODO: check what system we are on, and install
# systemv instead, if appropriate.
install_upstart $*