Files
MalinandClaude Opus 5.5 909e085384 fix: run as service user via rc.subr, quieter logs, drop unreachable resolvers
daemon -u fails inside a jail (setusercontext), py312-sqlite3 is a
separate package, and FDN / Quad101 do not answer from gringo.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 12:59:01 +02:00

42 lines
1.1 KiB
Bash

#!/bin/sh
#
# PROVIDE: zmtools
# REQUIRE: NETWORKING
# KEYWORD: shutdown
#
# zonemaster.es DNS tools API. Enable with:
# sysrc zmtools_enable=YES
# sysrc zmtools_host=10.20.0.22 # jail IP the host nginx proxies to
. /etc/rc.subr
name=zmtools
rcvar=zmtools_enable
load_rc_config $name
: ${zmtools_enable:=NO}
: ${zmtools_user:=zmtools}
: ${zmtools_dir:=/usr/local/zmtools}
: ${zmtools_host:=127.0.0.1}
: ${zmtools_port:=5100}
: ${zmtools_log:=/var/log/zmtools.log}
pidfile=/var/run/${name}/${name}.pid
procname=/usr/sbin/daemon
command=/usr/sbin/daemon
command_args="-f -r -R 5 -P ${pidfile} -o ${zmtools_log} \
/usr/bin/env ZMTOOLS_HOST=${zmtools_host} ZMTOOLS_PORT=${zmtools_port} \
PYTHONPATH=${zmtools_dir} /usr/local/bin/python3.12 -m zmtools.server"
# rc.subr runs the command via su as ${zmtools_user}. daemon -u is not used:
# inside a jail its setusercontext() fails ("failed to set user environment").
zmtools_user=${zmtools_user}
start_precmd=zmtools_prestart
zmtools_prestart()
{
install -d -o ${zmtools_user} -m 755 /var/db/zmtools /var/run/${name}
touch ${zmtools_log} && chown ${zmtools_user} ${zmtools_log}
}
run_rc_command "$1"