Last active
July 7, 2020 12:17
-
-
Save DanEdens/2ad194a6f08ac2f189c67e989aeba0dd to your computer and use it in GitHub Desktop.
Init.d script for node-red
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/sh | |
### BEGIN INIT INFO | |
# Provides: node-red | |
# Required-Start: $remote_fs $syslog | |
# Required-Stop: $remote_fs $syslog | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: start node-red server at init | |
### END INIT INFO | |
# Single command inspired by https://gist.github.com/Belphemur/cf91100f81f2b37b3e94 | |
# Can be downloaded and installed in one go by using this command | |
# sudo wget -O /tmp/download https://gist.github.com/DanEdens/2ad194a6f08ac2f189c67e989aeba0dd/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 | |
set -e | |
NAME=node-red | |
USER=root | |
USER_DIR=/home/ubuntu/.node-red/ | |
PIDFILE=/var/run/node-red.pid | |
DAEMON=/usr/local/bin/node-red | |
LOG='/var/log/node-red.log' | |
# /etc/init.d/node-red: start and stop the node-red server | |
test -x ${DAEMON} || exit 0 | |
umask 022 | |
. /lib/lsb/init-functions | |
run_by_init() { | |
([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ] | |
} | |
start_daemon (){ | |
if start-stop-daemon --start -v --user ${USER} --oknodo --background \ | |
--name ${NAME} --make-pidfile --pidfile ${PIDFILE} \ | |
--exec ${DAEMON} -- -s /.node-red/settings.js >> $LOG; then | |
log_end_msg 0 | |
else | |
log_end_msg 1 | |
fi | |
} | |
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" | |
case "$1" in | |
start) | |
if init_is_upstart; then | |
exit 1 | |
fi | |
log_daemon_msg "Starting network daemon:" "$NAME" | |
start_daemon | |
;; | |
stop) | |
if init_is_upstart; then | |
exit 0 | |
fi | |
log_daemon_msg "Stopping network daemon:" "$NAME" | |
if start-stop-daemon --stop --oknodo --pidfile ${PIDFILE}; then | |
log_end_msg 0 | |
rm -f ${PIDFILE} | |
else | |
log_end_msg 1 | |
fi | |
;; | |
reload|force-reload) | |
if init_is_upstart; then | |
exit 1 | |
fi | |
log_daemon_msg "Reloading network daemon configuration:" "$NAME" | |
if start-stop-daemon --stop --signal HUP --quiet --oknodo --pidfile $PIDFILE; then | |
log_end_msg 0 | |
else | |
log_end_msg 1 | |
fi | |
;; | |
restart) | |
if init_is_upstart; then | |
exit 1 | |
fi | |
log_daemon_msg "Restarting network daemon:" "node-red" | |
if start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile ${PIDFILE}; then | |
rm -f ${PIDFILE} | |
fi | |
start_daemon | |
;; | |
try-restart) | |
if init_is_upstart; then | |
exit 1 | |
fi | |
log_daemon_msg "Restarting Node-red Server" "node-red" | |
set +e | |
start-stop-daemon --stop --quiet --retry 30 --pidfile ${PIDFILE} | |
RET="$?" | |
set -e | |
case $RET in | |
0) | |
# old daemon stopped | |
rm -f ${PIDFILE} | |
start_daemon | |
;; | |
1) | |
# daemon not running | |
log_progress_msg "(not running)" | |
log_end_msg 0 | |
;; | |
*) | |
# failed to stop | |
log_progress_msg "(failed to stop)" | |
log_end_msg 1 | |
;; | |
esac | |
;; | |
status) | |
if init_is_upstart; then | |
exit 1 | |
fi | |
status_of_proc -p ${PIDFILE} ${DAEMON} node-red && exit 0 || exit $? | |
;; | |
*) | |
log_action_msg "Usage: /etc/init.d/node-red {start|stop|reload|force-reload|restart|try-restart|status}" | |
exit 1 | |
esac | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment