-
-
Save apearson/56a2cd137099dbeaf6683ef99aa43ce0 to your computer and use it in GitHub Desktop.
#!/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" |
This is in reply to @kitten77.
I don't think its a good idea to change the default user in a script like this, since the Freebsd install instructions don't require the creation of a non-root user. While this is good practice and highly recommended, there is no guarantee that each of us will create that non-root user the same way, thus breaking the script and causing more work for @apearson.
I agree with @RanceH on this. We can't depend on the nodered_runAs
user being created before and the people creating the user will be the ones to read the comment and know how to change the nodered_runAs
user
Hello, can someone help me instaling it on TrueNAS core 13.1?
What have you tried @EliasZoockt?
I tried to run the script and than to understand the comments but i dont know what i have to do.
- Did you
Place this file in /usr/local/etc/rc.d/
- Then
Add nodered_enable="YES" to /etc/rc.config
- Then
service start nodered
how do i put the file in the path with the shell?
@EliasZoockt email me at noderedhelp at {myusername} dot io
Could make it default so that you only have to change the user if you don't want it to run as user nodered.