#!/bin/sh # PROVIDE: litterbox # REQUIRE: LOGIN # KEYWORD: shutdown # Add the following to /etc/rc.conf to enable litterbox running as a # user: # # litterbox_enable="YES" # litterbox_user="user" # litterbox_env="HOME=/home/user" # # The litterbox service supports profiles for running multiple # instances. Set litterbox_profiles to a space-separated list of names. # Flags for each profile will be set from litterbox_${profile}_flags. # For example: # # litterbox_profiles="example1 example2" # litterbox_example1_flags="example1.conf" # litterbox_example2_flags="example2.conf" # # The commands start, stop, etc. will operating on the profile given as # an additional argument, or on all profiles without an additional # argument. . /etc/rc.subr name='litterbox' rcvar='litterbox_enable' load_rc_config "${name}" : ${litterbox_enable:='NO'} command='/usr/sbin/daemon' pidprefix="/var/run/${name}" pidfile="${pidprefix}.pid" child_command='%%PREFIX%%/bin/litterbox' if [ -n "$2" ]; then profile=$2 if [ -n "${litterbox_profiles}" ]; then pidfile="${pidprefix}.${profile}.pid" eval litterbox_enable="\${litterbox_${profile}_enable:-${litterbox_enable}}" eval litterbox_flags="\${litterbox_${profile}_flags:-${litterbox_flags}}" eval litterbox_user="\${litterbox_${profile}_user:-${litterbox_user}}" eval litterbox_env="\${litterbox_${profile}_env:-${litterbox_env}}" else echo "$0: extra argument ignored" fi else if [ -n "${litterbox_profiles}" -a -n "$1" ]; then for profile in ${litterbox_profiles}; do echo "===> ${name} profile: ${profile}" %%PREFIX%%/etc/rc.d/${name} "$1" "${profile}" || exit "$?" done exit fi fi child_flags=$litterbox_flags child_user=$litterbox_user unset litterbox_flags litterbox_user command_args="\ -r -P ${pidfile} -T ${name}${profile:+/${profile}} \ ${child_user:+-u ${child_user}} \ -- ${child_command} ${child_flags}" run_rc_command "$1"