summaryrefslogtreecommitdiffstats
path: root/instfiles/rc.d
diff options
context:
space:
mode:
authorKoichiro IWAO <meta@vmeta.jp>2015-03-12 11:22:35 +0000
committerKoichiro IWAO <meta@vmeta.jp>2015-06-18 16:25:39 +0900
commit0f8f03e9cf8fde9e8e75064b6614c1348d88324d (patch)
tree701b11a37cbe0a28d1a3a8c6b04c99c91c22b9a6 /instfiles/rc.d
parentf8432d0bb71e0b358c8ab32fdfae816229973034 (diff)
downloadxrdp-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.am4
-rw-r--r--instfiles/rc.d/xrdp61
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"