From 0f8f03e9cf8fde9e8e75064b6614c1348d88324d Mon Sep 17 00:00:00 2001 From: Koichiro IWAO Date: Thu, 12 Mar 2015 11:22:35 +0000 Subject: instfiles: merge rc script from FreeBSD - merge rc script from FreeBSD - modify Makefile.am to detect OS and install suitable files --- instfiles/rc.d/Makefile.am | 4 +++ instfiles/rc.d/xrdp | 61 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 instfiles/rc.d/Makefile.am create mode 100644 instfiles/rc.d/xrdp (limited to 'instfiles/rc.d') diff --git a/instfiles/rc.d/Makefile.am b/instfiles/rc.d/Makefile.am new file mode 100644 index 00000000..5edb8ccc --- /dev/null +++ b/instfiles/rc.d/Makefile.am @@ -0,0 +1,4 @@ +EXTRA_DIST = xrdp +startscriptdir=$(sysconfdir)/rc.d +startscript_DATA = xrdp + diff --git a/instfiles/rc.d/xrdp b/instfiles/rc.d/xrdp new file mode 100644 index 00000000..24d4aabe --- /dev/null +++ b/instfiles/rc.d/xrdp @@ -0,0 +1,61 @@ +#!/bin/sh +# +# $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 + # Generate rsakeys.ini on start + if [ "${rc_arg}" = "start" -a ! -f %%PREFIX%%/etc/xrdp/rsakeys.ini ] ; then + %%PREFIX%%/bin/xrdp-keygen xrdp %%PREFIX%%/etc/xrdp/rsakeys.ini + 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" -- cgit v1.2.1