Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

Не работает скрипт автозапуска 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

ЧЯДНТ? Уже давно не могу сие побороть...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.