Rasp-Node-Red-Gerer
Raspbian Whezzy et SystemV
Node-Red est vraiment au top dès son installation mais il nécessite encore un opération manuelle pour le démarrer (start), l'arrêter (stop) et démarrer au boot.
La section suivante décrit comment mettre en oeuvre un "init script" qui effectue le travail pour vous. System V est une collection de script qui supervise le démarrage et l'arrêt des systèmes type Unix. Il était encore utilisé jusqu'à Raspbian Whezzy. Depuis Raspbian Jessie c'est SystemD qui est utilisé (cfr section suivante).
Pour commencer, nous allons créer un nouveau fichier init.d qui est principalement un script qui démarre, arrête et redémarre les services sous Linux.
sudo nano /etc/init.d/node_red
Ensuite, copiez/collez le code suivant dans le fichier. Pour faire cela avec Nano, copiez le texte suivant dans le presse papier puis faites un clique droit dans la fenêtre de Nano... vous verrez le texte apparaître.
La seule chose que vous pourriez avoir besoin de changer avant de sauver le fichier c'est le répertoire d'installation Node-Red sur votre ordinateur. Si vous avez attentivement suivit les instructions alors vous ne devriez pas avoir besoin de changer le contenu du fichier.
Pour ceux qui on installé Node-Red dans un emplacement différent changer simplement la ligne “cd /home/pi/node-red” pour refléter l'installation actuelle de votre Pi.
#! /bin/sh
# Starts and stops Node-RED
# /etc/init.d/node_red
### BEGIN INIT INFO
# Provides: node_red
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Node-RED initialisation
### END INIT INFO
# Note: this runs as the user called pi
PIDFILE=/var/run/nodered.pid
#Load up node red when called
case "$1" in
start)
echo "Starting Node-Red.."
su -l pi -c "cd node-red; screen -dmS red node --max-old-space-size=64 red.js
echo `screen -ls red | sed -n '2p' | cut -f1 -d.` > $PIDFILE
# or
#nohup node --max-old-space-size=128 red.js > /var/log/node-red.log &
#echo $! > $PIDFILE
;;
stop)
echo "Stopping Node-Red.."
su -l pi -c "screen -S red -X quit"
# or
#kill `cat $PIDFILE`
rm -f $PIDFILE
;;
restart)
echo "Restarting Node-Red.."
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
Une fois que vous avez collé (et mis à jour) le script ci-dessus PRESSEZ CTRL+X puis Y pour sauver les changements. Ensuite nous allons le rendre exécutable de sorte que nous pourrons l'exécuter.
sudo chmod +x /etc/init.d/node_red
Pour finir, pour s'assurer que le script démarrera au démarrage du Pi (boot) et arrêté durant sa mise à l'arrêt, il faudra faire une mise-à-jour du fichier rc.d .
sudo update-rc.d node_red defaults
Voilà! Simple et efficace. Les commandes suivantes permettent de vérifier le bon fonctionnement du service:
sudo service node_red start
sudo service node_red stop
sudo service node_red restart
Raspbian Jessie et SystemD
Depuis Raspbian Jessie, System 5 (mode de démarrage du système) à été remplacé par SystemD. Vous trouverez ci-dessous des informations traduites depuis le lien "Adding Autostart capability using SystemD" (nodered.org, anglais)
Vous pouvez démarrer automatiquement Node-RED sur un Pi en utilisant SystemD. Il est possible de démarrer et arrêter le service en utilisant le fichier nodered.service et les scripts de démarrage et arrêt (start et stop):
sudo wget https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/nodered.service -O /lib/systemd/system/nodered.service
sudo wget https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/node-red-start -O /usr/bin/node-red-start
sudo wget https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/node-red-stop -O /usr/bin/node-red-stop
sudo chmod +x /usr/bin/node-red-st*
sudo systemctl daemon-reload
Info: ces commandes sont exécutées en "root" à l'aide de sudo permettent de télécharger les 3 fichiers requis en les plaçant au bon endroit, rendre les scripts exécutables et recharger le deamon de systemd.
Node-RED peut alors être démarré et arrêté en utilisant les commandes node-red-start et node-red-stop (voyez le point précédent pour plus d'informations)
Ensuite, pour activer le démarrage automatique de Node-RED à chaque démarrage de votre Pi (ou crash)
sudo systemctl enable nodered.service
Et vous pouvez désactiver la fonctionnalité en utilisant
sudo systemctl disable nodered.service
Systemd utilise le fichier /var/log/system.log pour logging. Vous pouvez utiliser la commande suivante pour filtrer les entrées du log:
sudo journalctl -f -u nodered -o cat
Il est également possible de modifier l'environnement de SystemD et utiliser un proxy. Voyez ce lien dans la documentation de nodered.org.
Mise-à-jour de Node-Red
Un dernier point concernant la gestion de Node-Red: il faut le garder à jour. Etant donné que nous avons cloner le dépôt Node-Red original, nous pouvons rapatrier facilement la dernière version depuis le dépôt GitHub.
Pour faire cela, il suffit de vous rendre dans le répertoire d'installation de Node-Red:
cd ~/node-red/
Et d'exécuter la commande git pull :
sudo git pull
S'il y a le moindre changement, il sera téléchargé et inclus dans les sources de votre clone. Vous pouvez alors redémarrer Node-Red en utilisant le script de service (écrit ci-avant) .
Source: Raspberry Pi Hosting Node-Red
Créé par C. Mobberley pour AdaFruit Industries.
Traduction réalisée et augmentée par Meurisse D. pour MCHobby.be.
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.
Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com