diff options
author | Koichiro IWAO <meta@vmeta.jp> | 2015-03-12 11:22:35 +0000 |
---|---|---|
committer | Koichiro IWAO <meta@vmeta.jp> | 2015-06-18 16:25:39 +0900 |
commit | 0f8f03e9cf8fde9e8e75064b6614c1348d88324d (patch) | |
tree | 701b11a37cbe0a28d1a3a8c6b04c99c91c22b9a6 /instfiles/rc.d | |
parent | f8432d0bb71e0b358c8ab32fdfae816229973034 (diff) | |
download | xrdp-proprietary-0f8f03e9cf8fde9e8e75064b6614c1348d88324d.tar.gz xrdp-proprietary-0f8f03e9cf8fde9e8e75064b6614c1348d88324d.zip |
instfiles: merge rc script from FreeBSD
- merge rc script from FreeBSD
- modify Makefile.am to detect OS and install suitable files
Diffstat (limited to 'instfiles/rc.d')
-rw-r--r-- | instfiles/rc.d/Makefile.am | 4 | ||||
-rw-r--r-- | instfiles/rc.d/xrdp | 61 |
2 files changed, 65 insertions, 0 deletions
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" |