Skip to content

Instantly share code, notes, and snippets.

@apearson
Last active Jun 27, 2022
Embed
What would you like to do?
Node-RED FreeBSD RC Script
#!/bin/sh
#
# PROVIDE: nodered
# REQUIRE: LOGIN
# KEYWORD: shutdown
# Author: Andrew Pearson (apearson.io)
# Version: 1.0.2
# Description:
# This script runs Node-RED as a service under the supplied user on boot
# How to use:
# Place this file in /usr/local/etc/rc.d/
# Add nodered_enable="YES" to /etc/rc.config
# (Optional) To run as non-root, add nodered_runAs="node-red" to /etc/rc.config
# (Optional) To pass Node-RED args, add nodered_args="" to /etc/rc.config
# Freebsd rc library
. /etc/rc.subr
# General Info
name="nodered" # Safe name of program
program_name="node-red" # Name of exec
title="Node-RED" # Title to display in top/htop
# RC.config vars
load_rc_config $name # Loading rc config vars
: ${nodered_enable="NO"} # Default: Do not enable Node-RED
: ${nodered_runAs="root"} # Default: Run Node-RED as root
# Freebsd Setup
rcvar=nodered_enable # Enables the rc.conf YES/NO flag
pidfile="/var/run/${program_name}.pid" # File that allows the system to keep track of node-red status
# Env Setup
export HOME=$( getent passwd "$nodered_runAs" | cut -d: -f6 ) # Gets the home directory of the runAs user
# Command Setup
exec_path="/usr/local/bin/${program_name}" # Path to the node-red exec, /usr/local/bin/ when installed globally
output_file="/var/log/${program_name}.log" # Path to Node-RED output file
# Command
command="/usr/sbin/daemon"
command_args="-r -t ${title} -u ${nodered_runAs} -o ${output_file} -P ${pidfile} ${exec_path} ${nodered_args}"
# Loading Config
load_rc_config ${name}
run_rc_command "$1"
@apearson
Copy link
Author

apearson commented Jun 26, 2022

@jprovan If you open a process viewer do you see a nodejs service with a parent of a daemon service? Or do you just see a daemon service or do you see neither?

Anything in the output logs?

@jprovan
Copy link

jprovan commented Jun 27, 2022

Well, I am sorry to have bothered you. I retraced my steps and it is working properly. Thank you for responding so quickly.

@apearson
Copy link
Author

apearson commented Jun 27, 2022

@jprovan No worries! Glad it's working

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment