#!/sbin/runscript # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 extra_commands="configtest" description="Virtual Machine, Runtime, and JIT for PHP" description_configtest="Run syntax tests for configuration files." HHVM_CONFIG=${HHVM_CONFIG:-/etc/hhvm/config.hdf} HHVM_DIR=${HHVM_DIR:-/usr/lib/hhvm} HHVM_LIB=${HHVM_LIB:-${HHVM_DIR}/lib} HHVM_BIN=${HHVM_BIN:-${HHVM_DIR}/bin/hhvm} HHVM_USER=${HHVM_USER:-hhvm} HHVM_GROUP=${HHVM_GROUP:-hhvm} HHVM_DATADIR=${HHVM_DATADIR:-/var/lib/hhvm} HHVM_REPOFILE=${HHVM_REPOFILE:-${HHVM_DATADIR}/${SVCNAME}.hhbc} HHVM_PIDDIR=${HHVM_PIDDIR:-/var/run/hhvm} HHVM_PIDFILE=${HHVM_PIDFILE:-${HHVM_PIDDIR}/${SVCNAME}.pid} HHVM_LOGDIR=${HHVM_LOGDIR:-/var/log/hhvm} HHVM_LOGFILE=${HHVM_LOGFILE:-${HHVM_LOGDIR}/${SVCNAME}_error.log} HHVM_TIMEOUT=${HHVM_TIMEOUT:-15} depend() { need net localmount use dns logger after bootmisc } checkconfig() { if [ ! -f "${HHVM_CONFIG}" ] ; then eerror "Please create ${HHVM_CONFIG}" eerror "Sample conf: /etc/hhvm/config.hdf.dist" return 1 fi checkpath -q -d -m 0750 -o ${HHVM_USER}:${HHVM_GROUP} ${HHVM_DATADIR} checkpath -q -d -m 0750 -o ${HHVM_USER}:${HHVM_GROUP} ${HHVM_PIDDIR} checkpath -q -d -m 0750 -o ${HHVM_USER}:${HHVM_GROUP} ${HHVM_LOGDIR} export HPHP_HOME="${HHVM_LIB}" LD_LIBRARY_PATH="${HHVM_LIB}" ${HHVM_BIN} -c "${HHVM_CONFIG}" /dev/null >/dev/null 2>&1 ret=$? if [ $ret -ne 0 ]; then LD_LIBRARY_PATH="${HHVM_LIB}" ${HHVM_BIN} -c "${HHVM_CONFIG}" /dev/null fi return $ret } start() { checkconfig || return $? local OPTS="" if [[ -n "${SERVER_TYPE}" ]]; then OPTS+=" -vServer.Type=${SERVER_TYPE}" fi if [[ -n "${SERVER_IP}" ]]; then OPTS+=" -vServer.IP=${SERVER_IP}" fi if [[ -n "${SERVER_PORT}" ]]; then OPTS+=" -vServer.Port=${SERVER_PORT}" fi if [[ -n "${SERVER_THREADCOUNT}" ]]; then OPTS+=" -vServer.ThreadCount=${SERVER_THREADCOUNT}" fi if [[ -n "${SERVER_SOURCEROOT}" ]]; then OPTS+=" -vServer.SourceRoot=${SERVER_SOURCEROOT}" fi ebegin "Starting ${SVCNAME}" LD_LIBRARY_PATH="${HHVM_LIB}" start-stop-daemon --start --background \ --exec "${HHVM_BIN}" \ --pidfile "${HHVM_PIDFILE}" \ --user "${HHVM_USER}:${HHVM_GROUP}" \ --stdout "${HHVM_LOGFILE}" \ --stderr "${HHVM_LOGFILE}" \ --env HPHP_HOME="${HHVM_LIB}/" \ -- -m server \ -c "${HHVM_CONFIG}" \ -u "${HHVM_USER}" \ -vPidFile=${HHVM_PIDFILE} \ -vLog.File=${HHVM_LOGFILE} \ -vRepo.Central.Path=${HHVM_REPOFILE} \ ${OPTS} \ ${HHVM_OPTS} eend $? "Failed to start ${SVCNAME}" } stop() { ebegin "Stopping ${SVCNAME}" start-stop-daemon --stop --pidfile "${HHVM_PIDFILE}" --retry "${HHVM_TIMEOUT}" eend $? "Failed to stop ${SVCNAME}" } configtest() { ebegin "Checking ${SVCNAME} configuration" checkconfig eend $? "failed, please correct errors above" }