#!/bin/sh # # Copyright (c) 1992-2015 The FreeBSD Project. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # $FreeBSD$ # # REQUIRE: DAEMON # PROVIDE: xrdp xrdp_sesman # . /etc/rc.subr name="xrdp" rcvar=xrdp_enable xrdp_daemons="xrdp" # Read settings and set default values. load_rc_config "$name" : ${xrdp_enable="NO"} # Enable/disable dependent daemon. if [ -n "${rcvar}" ] && checkyesno "xrdp_sesman_enable"; then xrdp_daemons="xrdp xrdp_sesman" fi # Commands. extra_commands="reload status" start_cmd="xrdp_cmd" stop_cmd="xrdp_cmd" status_cmd="xrdp_cmd" reload_cmd="xrdp_cmd" rcvar_cmd="xrdp_cmd" # Command wrapper to call each of them per daemon. xrdp_cmd() { local name rcvar command pidfile xrdp_daemons # Prevent recursive calling. unset "${rc_arg}_cmd" # Stop processes in the reverse to order. if [ "${rc_arg}" = "stop" ] ; then xrdp_daemons=$(reverse_list ${xrdp_daemons}) fi # Apply to all the daemons. for name in ${xrdp_daemons}; do rcvar=${name}_enable if [ "${name}" = "xrdp_sesman" ]; then command="%%PREFIX%%/sbin/xrdp-sesman" pidfile="/var/run/xrdp-sesman.pid" else command="%%PREFIX%%/sbin/${name}" pidfile="/var/run/${name}.pid" fi run_rc_command "${_rc_prefix}${rc_arg}" ${rc_extra_args} done } run_rc_command "$1"