summaryrefslogtreecommitdiff
path: root/frontends/etc/rc.d/dserver-freebsd.tpl
diff options
context:
space:
mode:
Diffstat (limited to 'frontends/etc/rc.d/dserver-freebsd.tpl')
-rw-r--r--frontends/etc/rc.d/dserver-freebsd.tpl9
1 files changed, 9 insertions, 0 deletions
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