Ergänzt um eine automatische Übernahme der Tags aus dem Forum. Man muss den Beiträgen in Mastodon ja auch Reichweite geben 🙂
NodeBB - Automatisch starten
-
Im Beitrag https://frank-mankel.org/topic/3/node-js-auf-dem-raspberry3-b-installieren habe ich berichtet, wie man node.js installiert. Darin liegt die ausführbare Datei node in /opt/node/bin. Das behalten wir jetzt erst mal so im Hinterkopf.
Unter Debian arbeitet man mit systemd, ein System und Service Manager. Dieser Dienst sorgt dafür, das Dienste automatisch, z.B. beim Neustart des Servers gestartet werden. Dazu findet man im Ordner /etc/systemd/system eine ganze Reihe von Diensten. z.B.: sshd.service
Gut, hier geht es aber um NodeBB. Von NodeBB gibt es eine Anleitung zum Thema, die findet man hier. Aber, wir verfeinern das Ganze hier noch ein wenig
nodebb.service
[Unit] Description=NodeBB Documentation=https://docs.nodebb.org After=system.slice multi-user.target mongod.service [Service] Type=forking User=user StandardOutput=syslog StandardError=syslog SyslogIdentifier=nodebb WorkingDirectory=/home/user/nodebb PIDFile=/home/user/nodebb/pidfile ExecStart=/usr/bin/env node loader.js Restart=always [Install] WantedBy=multi-user.target
Den User ersetzt ihr mit dem Namen Euren User's der NodeBB startet. Die NodeBB Installation liegt unter folgendem Pfad
/home/user/nodebb/
Den Dienst aktivieren
sudo systemctl enable nodebb.service
und starten
sudo systemctl start nodebb.service
Nun sollte der Dienst normalerweise beim Booten NodeBB starten, macht er aber bei mir um's verrecken nicht. Also Logfiles durchsuchen.
Das sieht dort so aus
May 3 21:15:07 one systemd[1]: Starting NodeBB... May 3 21:15:07 one nodebb[1366]: /usr/bin/env: ‘node’: No such file or directory May 3 21:15:07 one systemd[1]: nodebb.service: Control process exited, code=exited status=127 May 3 21:15:07 one systemd[1]: Failed to start NodeBB. May 3 21:15:07 one systemd[1]: nodebb.service: Unit entered failed state. May 3 21:15:07 one systemd[1]: nodebb.service: Failed with result 'exit-code'. May 3 21:15:07 one systemd[1]: nodebb.service: Service hold-off time over, scheduling restart. May 3 21:15:07 one systemd[1]: Stopped NodeBB.
Und nun kommen wir wieder auf den Anfang des Beitrages zu sprechen. Node ist die Anwendung node.js, die die Applikation NodeBB startet.
Aus nodebb.service
/usr/bin/env node loader.js
node.js lädt die Datei loader.js, die im NodeBB Ordner liegt. So weit alles gut, aber bei unserer Installation, siehe den verlinkten Beitrag am Anfang, liegt die ausführbare Datei node in /opt/node/bin
Ok, nun kann ich mir das Problem erklären, der User Root hat keinen Zugriff auf die Datei node. Und jetzt das Rätsel für mich, mein User für NodeBB hat Zugriff, mein User Root nicht. Stundenlang alles probiert. .profile editiert usw. Nichts brachte Erfolg. Ok, dann halt dirty
Ich habe dann die Datei nach /bin kopiert.
cp /opt/node/bin/node /bin
Danach hatte der User Root Zugriff auf die Datei und der nodebb.service funktioniert einwandfrei.
Wer den Fehler kennt und eine Lösung für mich hat, immer her damit.
-
-
-
-
NanoPi5 - eMMC
Verschoben NanoPi R5S -
-
Linux Umstieg - 6 Jahre
Verschoben Allgemeine Diskussionen -
-