# 在 FreeBSD 中创建 /usr/local/etc/rc.d/ddns-go 文件
$ doas nano /usr/local/etc/rc.d/ddns-go
写入如下内容:
#!/bin/sh
# PROVIDE: ddns-go
# REQUIRE: NETWORKING
# KEYWORD: shutdown
. /etc/rc.subr
name="ddns_go"
rcvar="ddns_go_enable"
# Load configuration and set default value
load_rc_config $name
: ${ddns_go_enable:="NO"}
# Absolute paths
daemon_bin="/usr/sbin/daemon"
ddns_go_bin="/usr/local/bin/ddns-go"
ddns_go_args="-f 600 -c /usr/local/etc/ddns_go_config.yaml"
pidfile="/var/run/${name}.pid"
logfile="/var/log/${name}.log"
# Use procname so that 'service ddns-go status/stop' knows exactly what to track
procname="${ddns_go_bin}"
# Override the default start command to enforce explicit log redirection
start_cmd="ddns_go_start"
ddns_go_start() {
echo "Starting ${name}."
# -f redirects stderr, -o redirects stdout, -p records the child PID
${daemon_bin} -f -o ${logfile} -p ${pidfile} ${ddns_go_bin} ${ddns_go_args}
}
run_rc_command "$1"
接下来,给这个脚本添加可执行权限,并且添加到 /etc/rc.conf 文件。
# 添加可执行权限
$ doas chmod +x /usr/local/etc/rc.d/ddns-go
# 将服务加入 /etc/rc.conf 配置文件中以实现开机自启
$ doas service ddns-go enable
# 启动 ddns-go
$ doas service ddns-go start
# 查看 ddns-go 运行状态
$ doas service ddns-go status
Local time: Fri 2026-01-30 20:27:06 CST
Universal time: Fri 2026-01-30 12:27:06 UTC
RTC time: Fri 2026-01-30 12:27:07
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no