diff options
Diffstat (limited to 'databases/cyrus-smlacapd/files/cyrus_smlacapd_backend.sh.in')
-rw-r--r-- | databases/cyrus-smlacapd/files/cyrus_smlacapd_backend.sh.in | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/databases/cyrus-smlacapd/files/cyrus_smlacapd_backend.sh.in b/databases/cyrus-smlacapd/files/cyrus_smlacapd_backend.sh.in new file mode 100644 index 000000000000..2e82d62f686e --- /dev/null +++ b/databases/cyrus-smlacapd/files/cyrus_smlacapd_backend.sh.in @@ -0,0 +1,55 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: cyrus_smlacapd_backend +# REQUIRE: DAEMON cyrus_pwcheck +# KEYWORD: FreeBSD shutdown + +# +# Add the following line to /etc/rc.conf to enable cyrus_smlacapd_backend: +# cyrus_smlacapd_backend_enable="YES" +# +prefix=%%PREFIX%% +cyrus=${prefix}/cyrus +. %%RC_SUBR$$ + +name="cyrus_smlacapd_backend" +rcvar=`set_rcvar` + +[ -z "$cyrus_smlacapd_backend_enable" ] && cyrus_smlacapd_backend_enable="NO" +[ -z "$cyrus_smlacapd_backend_runtime" ] && cyrus_smlacapd_backend_runtime="${cyrus}/bin/run.x86-freebsd" +[ -z "$cyrus_smlacapd_backend_heap" ] && cyrus_smlacapd_backend_heap="${cyrus}bin/backend.x86-bsd" + +required_dirs="/var/acap /var/spool/acap" +pidfile=/var/run/cyrus_smlacapd_backend.pid +procname=$cyrus_smlacapd_backend_runtime +start_precmd="cyrus_smlacapd_backend_precmd" +start_postcmd="cyrus_smlacapd_backend_postcmd" +command=/usr/sbin/daemon +command_args="-f $cyrus_smlacapd_backend_runtime @SMLload=$cyrus_smlacapd_backend_heap" + +cyrus_smlacapd_backend_precmd() +{ + SOCKET=/var/acap/socke + if [ -e ${SOCKET} ] + then + rm ${SOCKET} + fi +} + +cyrus_smlacapd_backend_postcmd() +{ + sleep 1 + pid=`ps -o pid,command -axww | \ + awk '$2 == "'$cyrus_smlacapd_backend_runtime'" && $3 == "@SMLload='$cyrus_smlacapd_backend_heap'" { print $1 }'` + if [ -n "$pid" ] + then + echo "$pid" > $pidfile + fi +} + +load_rc_config $name + +run_rc_command "$1" |