0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2025-12-28 17:52:38 +00:00

Add rc.d daemon script

Adds a RC.d daemon script to control the HomeBrewery status. Based on Andrew Pearson's Node-RED script for the same purpose.
This commit is contained in:
G.Ambatte
2020-12-06 18:01:39 +13:00
parent d33ae2a50a
commit 99656357b1

51
freebsd/rc.d/homebrewery Normal file
View File

@@ -0,0 +1,51 @@
#!/bin/sh
#
# PROVIDE: homebrewery
# REQUIRE: NETWORKING
# KEYWORD: shutdown
# Author: S Robertson
# Version: 1.0.0
# Description:
# This script runs HomeBrewery as a service under the supplied user on boot
# How to use:
# Place this file in /usr/local/etc/rc.d/
# Add homebrewery_enable="YES" to /etc/rc.config
# (Optional) To run as non-root, add homebrewery_runAs="homebrewery" to /etc/rc.config
# (Optional) To pass HomeBrewery args, add homebrewery_args="" to /etc/rc.config
# Freebsd rc library
. /etc/rc.subr
# General Info
name="homebrewery" # Safe name of program
program_name="homebrewery" # Name of exec
title="HomeBrewery" # Title to display in top/htop
# RC.config vars
load_rc_config $name # Loading rc config vars
: ${homebrewery_enable="NO"} # Default: Do not enable HomeBrewery
: ${homebrewery_runAs="root"} # Default: Run HomeBrewery as root
# Freebsd Setup
rcvar=homebrewery_enable # Enables the rc.conf YES/NO flag
pidfile="/var/run/${program_name}.pid" # File that allows the system to keep track of HomeBrewery status
# Env Setup
export HOME=$( getent passwd "homebrewery_runAs" | cut -d: -f6 ) # Gets the home directory of the runAs user
export NODE_ENV="local"
export PORT=8001
# Command Setup
exec_cmd="/homebrewery/server.js" # Path to the HomeBrewery server.js, /usr/local/bin/ when installed globally
output_file="/var/log/${program_name}.log" # Path to HomeBrewery output file
# Command
command="/usr/sbin/daemon"
command_args="-r -t ${title} -u ${homebrewery_runAs} -o ${output_file} -P ${pidfile} /usr/local/bin/node ${exec_cmd} ${homebrewery_args}"
# Loading Config
load_rc_config ${name}
run_rc_command "$1"