summaryrefslogtreecommitdiff
path: root/frontends/etc
diff options
context:
space:
mode:
Diffstat (limited to 'frontends/etc')
-rw-r--r--frontends/etc/dserver/dtail-freebsd.json.tpl2
-rw-r--r--frontends/etc/rc.d/dserver-freebsd.tpl9
-rwxr-xr-xfrontends/etc/rc.d/dserver.tpl6
3 files changed, 15 insertions, 2 deletions
diff --git a/frontends/etc/dserver/dtail-freebsd.json.tpl b/frontends/etc/dserver/dtail-freebsd.json.tpl
index cd99560..634fcca 100644
--- a/frontends/etc/dserver/dtail-freebsd.json.tpl
+++ b/frontends/etc/dserver/dtail-freebsd.json.tpl
@@ -90,7 +90,7 @@
},
"Server": {
"SSHBindAddress": "0.0.0.0",
- "HostKeyFile": "/var/run/dserver/cache/ssh_host_key",
+ "HostKeyFile": "/var/db/dserver/ssh_host_key",
"HostKeyBits": 2048,
"MapreduceLogFormat": "default",
"MaxConcurrentCats": 2,
diff --git a/frontends/etc/rc.d/dserver-freebsd.tpl b/frontends/etc/rc.d/dserver-freebsd.tpl
index 6110c0c..04380cb 100644
--- a/frontends/etc/rc.d/dserver-freebsd.tpl
+++ b/frontends/etc/rc.d/dserver-freebsd.tpl
@@ -21,9 +21,18 @@ start_precmd="dserver_precmd"
dserver_precmd()
{
+ # /var/run is volatile on FreeBSD (cleanvar purges it at boot) — recreate
+ # the runtime dirs and repopulate the SSH key cache on every service
+ # start (a daily periodic job keeps it fresh afterwards). The SSH host
+ # key lives in persistent /var/db/dserver so it survives reboots (a
+ # regenerated host key would break clients' known_hosts).
install -d -o dserver -m 0755 /var/log/dserver
install -d -o dserver -m 0755 /var/run/dserver
install -d -o dserver -m 0755 /var/run/dserver/cache
+ install -d -o dserver -m 0700 /var/db/dserver
+ if [ -x /usr/local/bin/dserver-update-key-cache.sh ]; then
+ /usr/local/bin/dserver-update-key-cache.sh
+ fi
}
load_rc_config $name
diff --git a/frontends/etc/rc.d/dserver.tpl b/frontends/etc/rc.d/dserver.tpl
index 305b0ce..76e79a5 100755
--- a/frontends/etc/rc.d/dserver.tpl
+++ b/frontends/etc/rc.d/dserver.tpl
@@ -7,6 +7,10 @@ daemon_user="_dserver"
. /etc/rc.d/rc.subr
rc_reload=NO
+# dserver does not daemonize itself — let rc.subr start it in the background
+# (rc_bg) instead of backgrounding the whole rc_cmd invocation, which would
+# hide rc_pre failures and the start result from rcctl.
+rc_bg=YES
rc_pre() {
# /var/run is wiped by /etc/rc at boot — recreate the runtime dirs and
@@ -26,4 +30,4 @@ rc_pre() {
fi
}
-rc_cmd $1 &
+rc_cmd "$1"