Date: Tue, 10 Mar 2026 21:30:29 +0000 From: Todd Greenwood <toddg@zwrob.com> To: "freebsd-erlang@freebsd.org" <freebsd-erlang@freebsd.org> Subject: How do you create service scripts for erlang applications? Message-ID: <2Yrj8cxCD2A9FzD1K0TmTQDbQYwN5_iJ1NvnVQzsL2XVOyqFhCAkOPcdFQKKzTEDZXlf-r3W5WWZI2f-kF1s2bWEyhsupdo9IoMhrzp2bBo=@zwrob.com>
index | next in thread | raw e-mail
Hi Freebsd-Erlangers. This is my first post here...
Question: In FreeBSD, how do you write service scripts for BEAM applications? Is there a template I can follow?
I have simple needs. My app currently logs to stdout. I want to run the app as a daemon and send the logs to a file. Later, I'll get sophisticated and use more of Erlangs tooling for logs and log rotation, etc. And after that I'll figure out how to use syslog and send all my logs to a log server.
Here's what I've started with:
```
#!/bin/sh
#
# PROVIDE: gws
# REQUIRE: DAEMON
PACKAGE=myapp
BASE=/opt/myapp
. /etc/rc.subr
name="myapp"
desc="dummy app"
rcvar="${name}_enable"
command="/usr/local/lib/erlang28/bin/erl"
command_args="-pa \"$BASE\"/*/ebin -eval \"$PACKAGE@@main:run($PACKAGE)\" -noshell"
load_rc_config "${name}"
set_rcvar
pidfile="/var/run/${name}.pid"
procname="${name}"
run_rc_command "$1"
```
This is not great b/c:
* the service does not run as a daemon
* logs go to stdout and not to a file
I looked at this blog entry:
https://www.mo4tech.com/a-standalone-way-to-launch-an-erlang-application-daemon.html
and it suggested using the 'detached' flag, like this:
```
command_args="-pa \"$BASE\"/*/ebin -eval \"$PACKAGE@@main:run($PACKAGE)\" -detached"
```
That's better, b/c now the erlang aplication is backgrounded.... However, the output is not going to a log, and the 'service stop' and 'service restart' commands don't do anything.
Any suggestions welcome.
-ToddG
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2Yrj8cxCD2A9FzD1K0TmTQDbQYwN5_iJ1NvnVQzsL2XVOyqFhCAkOPcdFQKKzTEDZXlf-r3W5WWZI2f-kF1s2bWEyhsupdo9IoMhrzp2bBo=>
