nogood Posted November 12, 2018 Share Posted November 12, 2018 Не работает скрипт автозапуска Node-RED на Entware. NMDS 2.14.B.0.0-1 (не работало и на более ранних) Энтварь установлена по инструкции здесь. В /etc/init.d есть несколько сервисов - всё стартует корректно, кроме самописного скрипта для Node-RED. Причём, если после перезагрузки запустить ручками - всё хорошо. Сам Node-RED установлен через npm с флагом -g, почти по инструкции с оф. сайта. Ругани нигде не могу найти при запуске. Тот же TV-Headend, netdata и Mosquitto стартуют нормально. Привожу сам скрипт S95node-red: #!/bin/sh PATH=/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin:/sbin:/bin:/usr/sbin:/usr/bin ENABLED=yes NAME=node-red WRITE_LOG=yes PROG="/opt/bin/$NAME" PIDFILE="/var/run/$NAME.pid" CONFDIR="~/.node-red/" LOG="/opt/var/log/$NAME.log" ARGS="--max-old-space-size=128" CONF_ARG="-u $CONFDIR" ansi_red="\033[1;31m"; ansi_white="\033[1;37m"; ansi_green="\033[1;32m"; ansi_yellow="\033[1;33m"; ansi_blue="\033[1;34m"; ansi_cyan="\033[1;36m"; ansi_std="\033[m"; prog_status() { [ -f $PIDFILE ] && [ -d /proc/`cat $PIDFILE 2> /dev/null` ] } prog_kill() { COUNTER=0 LIMIT=20 while [ -n "`pidof $NAME`" -a "$COUNTER" -le "$LIMIT" ]; do sleep 1; COUNTER=`expr $COUNTER + 1` done [ -n "`pidof $NAME`" ] && killall -9 $NAME 2> /dev/null rm -f $PIDFILE 2> /dev/null } prog_start() { [ "$ENABLED" != "yes" ] && return 8 if prog_status then return 1 fi rm -f $PIDFILE 2> /dev/null if [ "$WRITE_LOG" != "yes" ] then $PROG $ARGS $CONF_ARG >/dev/null 2>&1 & else touch $LOG chown root. $LOG echo "" >> $LOG $PROG $ARGS $CONF_ARG >>$LOG 2>&1 & fi echo $! > $PIDFILE } prog_stop() { kill -15 `cat $PIDFILE 2> /dev/null` 2> /dev/null prog_kill } start() { echo -e -n "$ansi_white Starting $NAME... $ansi_std" if prog_status then echo -e " $ansi_yellow already running. $ansi_std" else prog_start if [ -f $PIDFILE ] && [ -d /proc/`cat $PIDFILE 2> /dev/null` ]; then echo -e " $ansi_green done. $ansi_std" logger "$NAME started." 2> /dev/null else echo -e " $ansi_red failed. $ansi_std" fi fi } stop() { echo -e -n "$ansi_white Shutting down $NAME... $ansi_std" if prog_status then prog_stop if [ -z "`pidof $NAME`" ]; then echo -e " $ansi_green done. $ansi_std" logger "$NAME stoped." 2> /dev/null else echo -e " $ansi_red failed. $ansi_std" fi else echo -e " $ansi_blue is not running. $ansi_std" fi } check() { echo -e -n "$ansi_white Checking $NAME... $ansi_std" if prog_status then echo -e " $ansi_green alive. $ansi_std" else echo -e " $ansi_red dead. $ansi_std" fi } status() { echo -e -n "$ansi_white Status $NAME... $ansi_std" if prog_status then echo -e " $ansi_yellow is running. $ansi_std" else echo -e " $ansi_blue is not running. $ansi_std" fi } case "$1" in start) start ;; stop) stop ;; status) status ;; check) check ;; restart) stop sleep 3 start ;; *) echo -e "$ansi_white Usage: $0 (start|stop|restart|status|check|clean) $ansi_std" ;; esac ЧЯДНТ? Уже давно не могу сие побороть... Quote Link to comment Share on other sites More sharing options...
nogood Posted November 13, 2018 Author Share Posted November 13, 2018 Да, добавлю - сам Node-Red стартует долго, секунд 30-40. Может в этом быть проблема? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.