Unter FreeBSD ist es sehr einfach, ein eigenes rc.d Skript zu schreiben. Die Skripte sind einfache Shell Kommandos. Im Handbuch gibt es eine einfache Vorlage, welche man verwenden kann.

Ich habe hier für Telegraf ein einfaches “rc.d” Skript erstellt:

#!/bin/sh

# PROVIDE: telegraf
# REQUIRE: DAEMON NETWORKING
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# telegraf_enable (bool): Set to YES to enable
# telegraf_conf (str):    ${PREFIX}/etc/telegraf.conf
# telegraf_flags (str):   Extra flags

. /etc/rc.subr

name="telegraf"
rcvar="${name}_enable"

load_rc_config $name

: ${telegraf_enable:="NO"}
: ${telegraf_flags:=""}
: ${telegraf_conf:="/usr/local/etc/${name}.conf"}

USER="_${name}"
COMMAND="/opt/${name}/usr/bin/${name}"
LOGFILE="/var/log/${name}.log"

start_precmd=${name}_prestart
pidfile="/var/run/${name}.pid"

command="/usr/sbin/daemon"
command_args="-crP ${pidfile} -u ${USER} ${COMMAND} -config ${telegraf_conf} ${telegraf_flags} 1>>${LOGFILE} 2>&1"

telegraf_prestart() {
  rc_flags=""
}

run_rc_command "$1"