FreeBSD rc script example

Written by Kirill Filatov, on 15 February 2026.
Tags: #freebsd #bsd

Simple rc script for FreeBSD daemon

Despite that FreeBSD has excellent intorduction to rc scripting I found useful to have simple example of rc script at hand.

Say you wanna install torrserver on FreeBSD. It doesn’t have package you can install via pkg. So for the convenient usage you need following steps.

# Download precompiled FreeBSD version of Torrserver

# Add user

adduser torrserver
adduser -s /usr/sbin/nologin -D torrserver

# Create directories and files

mkdir /var/db/torrserver 
touch /var/db/torrserver/config.db
chown -R torrserver /var/db/torrserver
touch /var/run/torrserver.pid
chown torrserver /var/run/torrserver.pid
touch  /var/log/torrserver.log
chown torrserver /var/log/torrserver.log

# Create rc file in /usr/local/etc/rc.d dir

#!/bin/sh
#
# PROVIDE: torrserver
# REQUIRE: DAEMON
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable uptimed:
#
# torrserver_enable="YES"
#

. /etc/rc.subr

name="torrserver"
rcvar=torrserver_enable

command="/usr/sbin/daemon"
procname=/usr/local/bin/${name}
pidfile=/var/run/torrserver.pid
#stop_postcmd="torrserver_poststop"
torrserver_user=torrserver
#torrserver_flags=""
torrserver_datadir="/var/db/torrserver"
torrserver_logfile="/var/log/torrserver.log"
command_args="-o ${torrserver_logfile} -p ${pidfile} ${procname} -d ${torrserver_datadir} -t <torrents_dir>"

#load_rc_config ${name}

: ${torrserver_enable="NO"}
: ${torrserver_pidfile="/var/run/${name}.pid"}

pidfile=${torrserver_pidfile}
#torrserver_flags="-p ${pidfile}"

run_rc_command "$1"

And here we are. You can start the server

service torrserver enable
service torrserver start