[gelöst] node red autostart

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
croixaigle
Beiträge: 43
Registriert: 09.09.2017 14:19:57

[gelöst] node red autostart

Beitrag von croixaigle » 18.12.2020 12:45:11

Hallo zusammen,

ich habe mir das Node.js installiert auf dem Debian Buster amd64.
Auf der Grafischen Oberfläche sehe ich es unter: Anwendung => Entwicklung => Node RED
Wenn ich es von Hand starte, dann läuft es einwandfrei. Jetzt wollte ich es in den Autostart packen, egal wie ich es mache, es funktioniert nicht. Die Rechte von dem Ordner: /home/user/.node-red sind beim user
Gebe ich im Terminal als user

Code: Alles auswählen

node-red-start
ein, startet auch Node RED.

Wenn ich es in den Autostart soll, gebe ich den Befehl ein (unter user oder root)

Code: Alles auswählen

systemctl enable nodered.service
dann passiert nichts. Starte ich den Server neu. läuft Node Red nicht.

Fehlt mir das script dazu, oder ist es wo anderst? Wie fange ich nach dem Fehler an zu suchen?
in /var/log/nodered-install.log ist nur die Datei

Code: Alles auswählen

node-red-log
nodered.service: Changing to the requested working directory failed: Permission denied
nodered.service: Failed at step CHDIR spawning /usr/bin/env: Permission denied
nodered.service: Main process exited, code=exited, status=200/CHDIR
nodered.service: Failed with result 'exit-code'.
Liegt es an der Berechtigung, das das script env nur root rechte hat?

Was vlt ganz wichtig wäre, wie ich festgestellt habe ist node-red im Ordner root, und das ist dann falsch. Somit habe ich es entfernt.
Installation als root:

Code: Alles auswählen

apt install nodejs npm
User Terminal:

Code: Alles auswählen

 bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Jetzt ist die Frage wie ich es als user installiere. Wenn er nach [sudo] Passwort für user fragt.
Kommt das:

Code: Alles auswählen

User ist nicht in der sudoers-Datei. Dieser Vorfall wird gemeldet.
Muss ich den User in die sudoers-Datei einfügen?
Zuletzt geändert von croixaigle am 19.12.2020 13:32:57, insgesamt 1-mal geändert.

whiizy
Beiträge: 674
Registriert: 23.07.2011 22:09:37

Re: node red autostart

Beitrag von whiizy » 19.12.2020 11:16:47

croixaigle hat geschrieben: ↑ zum Beitrag ↑
18.12.2020 12:45:11
User Terminal:

Code: Alles auswählen

 bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Hi,
ich habe deinen Text jetzt nicht im detail nachvollzogen , aber ich weiß aus eigener Erfahrung, daß sich die Installation von nodered aus Debian mit der Installation aus den Quellen von nodered (githubusercontent.com) beißen kann. Das Installationsscript von der Homepage versucht parallele Installationen zu deinstallieren und weist aber auch darauf hin. Das curl-script muss im Verzeichnis ~/.node-red eines normalen users aufgegrufen werden und dieser user muss in der group sudo sein.

Die Startbefehle, wie node-red-start, sollte man danach eigentlich nicht verwenden, sondern die regulären systemctl start|stop nodered.

Durch das Mischen der nodered Quellen kann es eventuell zu Abhängigkeitsproblemen kommen. Ich musste mal folgendem Kniff folgen. Kurz gesagt war ein nodered dummy/metapaket zu bauen, welches dem Debiansystem vorgaukelt, nodered sei installiert und alle entsprechenden Abhängigkeiten seien erfüllt oder so ähnlich.

Ist vielleicht nicht ganz sauber, aber ein brandaktuelles nodered lief dann voll integriert und update-fähig über die Homepage aus deinem Link. War allerdings ein Stretch, dürfte unter Buster aber genauso sein.

Trifft jetzt vielleicht nicht ganz deine Fragen, aber vielleicht hilft es ja trotzdem.

Gruss

croixaigle
Beiträge: 43
Registriert: 09.09.2017 14:19:57

Re: node red autostart

Beitrag von croixaigle » 19.12.2020 13:31:55

Es ging um einiges leichter.
node-red soll ja als Benutzer laufen und nicht als root.
Da das debian vom System etwas agressiver ist. und die Berechtigung für suoders nicht bestand.
Musste der User in die sudoers eingetragen werden:

Öffnen Sie das Terminal und geben den Befehl ein und geben Ihr Passwort ein.
Danach geben Sie dort

Code: Alles auswählen

nano /etc/sudoers
ein um die Datei „Sudoers“ bearbeiten zu können.
Dort geben Sie unter „#includedir /etc/sudoers.d“

Code: Alles auswählen

%username ALL=(ALL:ALL) AL
L
ein
Soll nur ein Bestimmter User sudoers Berechtigung bekommen. Dann so eintragen:

Code: Alles auswählen

%horst ALL=(ALL:ALL) ALL
und drücken auf „Strg“ + „O“ ein um die Datei zu speichern.
Um die Bearbeitung zu beenden und verlassen zu können drücken Sie auf „Strg“ + „X“.
Um von den root zu verlassen geben Sie den Befehl „exit“ ein.

Installation wie folgt:

Code: Alles auswählen

sudo apt update
sudo apt install nodejs npm
node -v
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Anschließend habe ich den Befehl abgesetzt als user:

Code: Alles auswählen

sudo systemctl enable nodered.service
Server neu gestartet und node Red lief sofort, so wie ich es wollte und das unter Benutzer.

Antworten