rc startup script - daemon: failed to set user environment
Frank Shute
frank at shute.org.uk
Wed Nov 3 10:47:04 UTC 2010
On Wed, Nov 03, 2010 at 08:55:45AM +0200, Valentin Bud wrote:
>
> 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
Starting with the obvious, did you create a sogo userID with adduser(8)?
You want to give it nologin as a shell. It will also want a group.
Regards,
--
Frank
Contact info: http://www.shute.org.uk/misc/contact.html
More information about the freebsd-questions
mailing list