-
-
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.