rc startup script - daemon: failed to set user environment

Valentin Bud valentin.bud at gmail.com
Wed Nov 3 07:23:09 UTC 2010


Hello community,

 I am trying to build a startup script for an application built from source
code. The application name is SOGo (sogo.nu).

I will attach the rc  script and the error I receive when I run it.

#!/bin/sh
#
#
# PROVIDE: sogod
# REQUIRE: memcached
#
# Add the following lines to /etc/rc.conf to enable sogod:
#
# sogod_enable (bool):          Set it to "YES" to enable sogod.
#                               Default is "NO"
#
#

. /etc/rc.subr

name="sogod"
rcvar=`set_rcvar`

load_rc_config ${name}

: ${sogod_enable="NO"}
: ${sogod_user="sogo"}
: ${sogod_workers="-WOWorkersCount 1"}
: ${sogod_command="/usr/local/GNUstep/Local/Tools/Admin/sogod"}
: ${sogod_logfile="/var/log/sogo/sogo.log"}

pidfile="/var/run/sogo/sogo.pid"
command="/usr/sbin/daemon"
command_args="-f -p ${pidfile} -u ${sogod_user} ${sogod_command}
${sogod_workers} -WOPidFile ${pidfile} -WOLogFile ${sogod_logfile}"

start_precmd="${name}_prestart"

sogod_prestart() {
        if [ ! -d `dirname ${pidfile}` ]; then
                mkdir `dirname ${pidfile}` >/dev/null 2>&1 && chown
${sogod_user} `dirname ${pidfile}`
        fi
        if [ ! -d `dirname ${sogod_logfile}` ]; then
                mkdir `dirname ${sogod_logfile}` >/dev/null 2>&1
                touch ${sogod_logfile} && chown ${sogod_user}
${sogod_logfile}
        fi
        if [ -z ${GNUSTEP_SYSTEM_ROOT} ]; then
                . /usr/local/GNUstep/System/Library/Makefiles/GNUstep.sh
        fi
}

run_rc_command "$1"

 The sogo daemon requires memcached running to start and the
file ${sogod_logfile}
to be readable by ${sogod_user}. I also requires the
directory /var/run/sogo/ to be read/write
by ${sogod_user} so it can write the PID file. The GNUstep.sh makefile must
be loaded
so it can run properly.

 The other command_args are the startup arguments sogod takes.

memcached is already started:
sogo# sockstat | grep memcached
nobody   memcached  71167 16 tcp4   172.31.32.6:11211     *:*
nobody   memcached  71167 17 udp4   172.31.32.6:11211     *:*

sogod is enabled is /etc/rc.conf
# /usr/local/etc/rc.d/sogod rcvar
# sogod
#
sogod_enable="YES"
#   (default: "")

This is the error I receive when I try to start sogod
sogo# /usr/local/etc/rc.d/sogod start
Starting sogod.
daemon: failed to set user environment
/usr/local/etc/rc.d/sogod: WARNING: failed to start sogod

 This is the first rc script I write. What can I do to debug the problem
further?

Thank you and have a great day,
v
-- 
network warrior


More information about the freebsd-questions mailing list