From nobody Tue Mar 10 21:30:29 2026 X-Original-To: freebsd-erlang@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fVn9Y1y7zz6V5S6 for ; Tue, 10 Mar 2026 21:30:41 +0000 (UTC) (envelope-from toddg@zwrob.com) Received: from mail-24421.protonmail.ch (mail-24421.protonmail.ch [109.224.244.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "protonmail.com", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fVn9W2j5Hz3SxY for ; Tue, 10 Mar 2026 21:30:39 +0000 (UTC) (envelope-from toddg@zwrob.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=zwrob.com header.s=protonmail header.b=TJX+333G; dmarc=pass (policy=none) header.from=zwrob.com; spf=pass (mx1.freebsd.org: domain of toddg@zwrob.com designates 109.224.244.21 as permitted sender) smtp.mailfrom=toddg@zwrob.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zwrob.com; s=protonmail; t=1773178234; x=1773437434; bh=+CwexNaRvfxTHOAfOx4TmZb3lFpFJTuLmEHAWgp8EFo=; h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=TJX+333G3aEkbIcniYXo9LNd/NvQyACXIPZgaMjz9gzxOvZia7s4livwCHJ76SUhr cOuvHFjrIrQMpfJwjm66H6O0OxljsaKmNyaktD1tBEb+n+poUFEGo/5mQcnmm35IOw XOiLP/C7Hs3eVGpw7t60zapc/dY1fXjUGgKtXJq0BPELubCLDNoGYp/VgzVhYRbUsL KeRpBvU8bxYw9JeGlf3O/fYUtzWqvWKgi4SzzPeQJ0ery9jtMnM08TuyCYpz1D6Naf K3+RCSVq3Vqi6dN7E+pudwQOdEJfTn1uf9Pv+o2Tzs1fsuxdEeRF6MLRl188FDl0wD rxMvwgE+0woVg== Date: Tue, 10 Mar 2026 21:30:29 +0000 To: "freebsd-erlang@freebsd.org" From: Todd Greenwood Subject: How do you create service scripts for erlang applications? Message-ID: <2Yrj8cxCD2A9FzD1K0TmTQDbQYwN5_iJ1NvnVQzsL2XVOyqFhCAkOPcdFQKKzTEDZXlf-r3W5WWZI2f-kF1s2bWEyhsupdo9IoMhrzp2bBo=@zwrob.com> Feedback-ID: 4230591:user:proton X-Pm-Message-ID: 6a26fd64c7bb222757cd71bb9a780320673a3707 List-Id: Support of Erlang-related ports List-Archive: https://lists.freebsd.org/archives/freebsd-erlang List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-erlang@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spamd-Result: default: False [-3.50 / 15.00]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; DMARC_POLICY_ALLOW(-0.50)[zwrob.com,none]; RWL_MAILSPIKE_EXCELLENT(-0.40)[109.224.244.21:from]; R_DKIM_ALLOW(-0.20)[zwrob.com:s=protonmail]; R_SPF_ALLOW(-0.20)[+ip4:109.224.244.0/24]; MIME_GOOD(-0.10)[text/plain]; RCVD_IN_DNSWL_LOW(-0.10)[109.224.244.21:from]; MISSING_XM_UA(0.00)[]; ASN(0.00)[asn:62371, ipnet:109.224.244.0/24, country:CH]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_ONE(0.00)[1]; RCVD_COUNT_ZERO(0.00)[0]; MLMMJ_DEST(0.00)[freebsd-erlang@freebsd.org]; FROM_HAS_DN(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_EQ_ADDR_ALL(0.00)[]; DKIM_TRACE(0.00)[zwrob.com:+] X-Rspamd-Queue-Id: 4fVn9W2j5Hz3SxY X-Spamd-Bar: --- Hi Freebsd-Erlangers. This is my first post here... Question: In FreeBSD, how do you write service scripts for BEAM application= s? 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=3Dmyapp BASE=3D/opt/myapp . /etc/rc.subr name=3D"myapp" desc=3D"dummy app" rcvar=3D"${name}_enable" command=3D"/usr/local/lib/erlang28/bin/erl" command_args=3D"-pa \"$BASE\"/*/ebin -eval \"$PACKAGE@@main:run($PACKAGE)\"= -noshell" load_rc_config "${name}" set_rcvar pidfile=3D"/var/run/${name}.pid" procname=3D"${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-da= emon.html and it suggested using the 'detached' flag, like this: ``` command_args=3D"-pa \"$BASE\"/*/ebin -eval \"$PACKAGE@@main:run($PACKAGE)\"= -detached" ``` That's better, b/c now the erlang aplication is backgrounded.... However, t= he output is not going to a log, and the 'service stop' and 'service restar= t' commands don't do anything. Any suggestions welcome. -ToddG