-
-
Save Belphemur/cf91100f81f2b37b3e94 to your computer and use it in GitHub Desktop.
| #!/bin/bash | |
| ### BEGIN INIT INFO | |
| # Provides: node-red | |
| # Required-Start: $local_fs $remote_fs $network | |
| # Required-Stop: $local_fs $remote_fs $network | |
| # Default-Start: 2 3 4 5 | |
| # Default-Stop: 0 1 6 | |
| # Short-Description: Start or stop the node-red server | |
| ### END INIT INFO | |
| # Can be downloaded and installed in one go by using this command | |
| # sudo wget -O /tmp/download https://gist.github.com/Belphemur/cf91100f81f2b37b3e94/download && sudo tar -zxf /tmp/download --strip-components 1 -C /etc/init.d && sudo chmod +x /etc/init.d/node-red && sudo update-rc.d node-red defaults | |
| # User that launches node-RED (it's advised to create a new user for Node-RED) | |
| # You can do : sudo useradd node-red | |
| # then change the USER=root by USER=node-red | |
| # if you change the user, don't forget to also change the ownership of the log file (and create it if it doesn't exist): | |
| # sudo chown NEWUSER /var/log/node-red.log | |
| # else the log won't be writtable | |
| USER=root | |
| # The location of Node-RED configuration, not mandatory, leave empty/commented to let | |
| # Node-RED decides. | |
| #USER_DIR='/home/pi/node-red/' | |
| # DONT'T CHANGE unless you know what you're doing | |
| NAME=node-red | |
| DAEMON=/usr/local/bin/node-red-pi | |
| OPTIONS="--max-old-space-size=128" | |
| if [ -n "$USER_DIR" ]; then | |
| OPTIONS="$OPTIONS --userDir=$USER_DIR" | |
| fi | |
| LOG='/var/log/node-red.log' | |
| PIDFILE=/var/run/node-red.pid | |
| . /lib/lsb/init-functions | |
| start_daemon () { | |
| start-stop-daemon --start --background \ | |
| --chuid $USER --name $NAME \ | |
| $START_STOP_OPTIONS --make-pidfile --pidfile $PIDFILE \ | |
| --startas /bin/bash -- -c "exec $DAEMON $OPTIONS >> $LOG 2>&1" | |
| log_end_msg 0 | |
| } | |
| case "$1" in | |
| start) | |
| log_daemon_msg "Starting daemon" "$NAME" | |
| start_daemon | |
| ;; | |
| stop) | |
| log_daemon_msg "Stopping daemon" "$NAME" | |
| start-stop-daemon --stop --quiet \ | |
| --chuid $USER \ | |
| --exec $DAEMON --pidfile $PIDFILE --retry 30 \ | |
| --oknodo || log_end_msg $? | |
| log_end_msg 0 | |
| ;; | |
| restart) | |
| $0 stop | |
| sleep 5 | |
| $0 start | |
| ;; | |
| status) | |
| status_of_proc "$DAEMON" "$NAME" | |
| exit $? | |
| ;; | |
| *) | |
| echo "Usage: $0 {start|stop|restart}" | |
| exit 1 | |
| esac | |
| exit 0 |
red.js is called out in $OPTIONS string which is used when calling start-stop-daemon in start_daemon()
How can I get this to run in Ubuntu 14.04?
Created the script manually inside init.d, and pasted the text from here.
Changed:
User=Root to User=node-red (which is a sudo user)
DAEMON=/usr/local/bin/node-red-pi for DAEMON=usr/bin/node-red as this is what I get while typing which node-red
Then run from init.d sudo chmod a+x node-red
Tested the script by running sudo ./node-red start and the daemon says that it starts, however it is not running.
Am I missing something? Is there an easier way to launch using upstart in Ubuntu 14.04 (there is no systemd)?
hey @davidoc85 have you found any solution for your issue, im actually facing this issue right now .
where does this script tell node what script to load? node red.js