NEWS
Fehler in iobroker.sh
- 
					
					
					
					
 Hallo alle 
 Ich verwende folgendes iobroker.sh in etc/init.d:#!/bin/bash ### BEGIN INIT INFO # Provides: iobroker.sh Required-Start: $network $local_fs $remote_fs Required-Stop:: $network $local_fs $remote_fs Default-Start: 2 # 3 4 5 Default-Stop: 0 1 6 Short-Description: starts ioBroker Description: starts ioBroker ### END INIT INFO (( EUID )) && echo .You need to have root privileges.. && exit 1 PIDF=/opt/iobroker/node_modules/iobroker.js-controller/lib/iobroker.pid NODECMD=/usr/local/bin/node IOBROKERCMD=/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js RETVAL=0 IOBROKERUSER=root start() { export IOBROKER_HOME=/opt/iobroker echo -n "Starting ioBroker" sudo -u ${IOBROKERUSER} $NODECMD $IOBROKERCMD start RETVAL=$? } stop() { echo -n "Stopping ioBroker" sudo -u ${IOBROKERUSER} $NODECMD $IOBROKERCMD stop RETVAL=$? } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: iobroker {start|stop|restart}" exit 1 ;; esac exit $RETVALIch habe vorhin im Syslog aber folgende Zeilen gefunden Feb 25 04:28:06 localhost systemd[1]: Starting iobroker.service... Feb 25 04:28:06 localhost iobroker.sh[14053]: /etc/init.d/iobroker.sh: line 8: syntax error near unexpected token `(' Feb 25 04:28:06 localhost iobroker.sh[14053]: /etc/init.d/iobroker.sh: line 8: `IOBROKERCMD=/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js RETVAL=0 IOBROKERUSER=root start() {' Feb 25 04:28:06 localhost systemd[1]: iobroker.service: Control process exited, code=exited status=2 Feb 25 04:28:06 localhost systemd[1]: Failed to start iobroker.service. Feb 25 04:28:06 localhost systemd[1]: iobroker.service: Unit entered failed state. Feb 25 04:28:06 localhost systemd[1]: iobroker.service: Failed with result 'exit-code'.Ich nehme an, das ist auch der Grund warum Iobroker bei Reboot nicht startet. Aber wo ist da genau der Syntaxfehler? 
 Gruss Ralf
- 
					
					
					
					
 Es fehlen einige LF (line feed) in folgendem Bereich: (( EUID )) && echo .You need to have root privileges.. && exit 1 PIDF=/opt/iobroker/node_modules/iobroker.js-controller/lib/iobroker.pid NODECMD=/usr/local/bin/node IOBROKERCMD=/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js RETVAL=0 IOBROKERUSER=root start() { export IOBROKER_HOME=/opt/iobrokerund am Ende exit 1 ;; esac exit $RETVAL
- 
					
					
					
					
 @paul53 
 Danke!
 Um es einfacher zu machen:
 Kannst Du mir ev. eine iobroker.sh hier reinstellen die funktoniert?Gruss Ralf 
- 
					
					
					
					
 @derrapf 
 Bei Dir hat NODECMD einen anderen Pfad als bei mir. Was ergibt ?which node
- 
					
					
					
					
 @paul53 
 Da kommtroot@ioBroker-Rock64:~# which node /usr/bin/node
- 
					
					
					
					
 @derrapf sagte /usr/bin/node Dann stimmt sie doch mit meinem Pfad überein, oder hast Du 2 Node-Versionen installiert ? Was ergibt ? /usr/bin/node -v /usr/local/bin/node - v
- 
					
					
					
					
 @paul53 
 Erster Befehl:root@ioBroker-Rock64:~# /usr/bin/node -v v8.15.0Zweiter Befehl root@ioBroker-Rock64:~# /usr/local/bin/node - v -bash: /usr/local/bin/node: No such file or directoryKann aber sein dass das iobroker.sh das ich da verwende ein Falsche ist. Das könnte noch vom Raspi stammen. Das habe ich übernommen weil beim Image von Rainer für den Rock64 keines dabei war. 
 Gruss Ralf
- 
					
					
					
					
 @derrapf sagte): Kann aber sein dass das iobroker.sh das ich da verwende ein Falsche ist. Das ist es mit Sicherheit. Hier ein (hoffentlich) passendes. #!/bin/bash ### BEGIN INIT INFO # Provides: iobroker.sh # Required-Start: $network $local_fs $remote_fs # Required-Stop:: $network $local_fs $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts ioBroker # Description: starts ioBroker ### END INIT INFO (( EUID )) && echo .You need to have root privileges.. && exit 1 PIDF=/opt/iobroker/node_modules/iobroker.js-controller/lib/iobroker.pid NODECMD=/usr/bin/node IOBROKERCMD=/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js RETVAL=0 IOBROKERUSER=root start() { export IOBROKER_HOME=/opt/iobroker echo -n "Starting ioBroker" sudo -u ${IOBROKERUSER} $NODECMD $IOBROKERCMD start RETVAL=$? } stop() { echo -n "Stopping ioBroker" sudo -u ${IOBROKERUSER} $NODECMD $IOBROKERCMD stop RETVAL=$? } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: iobroker {start|stop|restart}" exit 1 ;; esac exit $RETVALoder als Datei iobroker.sh 
- 
					
					
					
					
 Super. Danke. Probier ich gleich aus nachher aus. 
 Gruss Ralf
- 
					
					
					
					
 Hallo Paul 
 Kann Teilerfolg vermelden.
 Der Fehler taucht im Syslog nicht mehr auf. Allerdings startet der IOBroker beim Booten aber auch nicht.Gruss Ralf 
- 
					
					
					
					
 @derrapf Startet ioBroker bei der Eingabe von ? /etc/init.d/iobroker.sh startWas ergibt ? ls -l /etc/init.d/iobroker.sh
- 
					
					
					
					
 @paul53 
 Gaaanz vorsichtig:
 ich meine die neuen Installationen arbeiten nicht mehr mit init.d - oder??
- 
					
					
					
					
 
- 
					
					
					
					
 @derrapf 
 Wie alt ist deine Installation? Evtl lohnt sich ein Backup und Ausführen des Fixer-Skripts.Aber dazu sollten wir sicher sein, dass nicht doch 2 Node-Versionen laufen. 
- 
					
					
					
					
 @AlCalzone sagte: Aber dazu sollten wir sicher sein, dass nicht doch 2 Node-Versionen laufen. Also was ergibt ? nodejs -vDass unter /usr/local/bin node nicht existiert, wurde bereits geprüft. 
- 
					
					
					
					
 Hallo Rainer 
 Da ich eines Deiner ersten Images verwende nehme ich an, ich verwende noch eine "alte" IOBroker Installation. Was ist jetzt eigentlich an der "Neuen" genau anders?
 @Paulroot@ioBroker-Rock64:~# /etc/init.d/iobroker.sh start Starting ioBrokeriobroker controller daemon already running. PID: 2634 root@ioBroker-Rock64:~# ls -l /etc/init.d/iobroker.sh -rwxrwxrwx 1 root root 1098 M▒r 4 15:03 /etc/init.d/iobroker.sh root@ioBroker-Rock64:~# nodejs -v v8.15.0Funktioniert alles wie erwartet. IOBroker läuft aktuell tatsächlich. Evtl lohnt sich ein Backup und Ausführen des Fixer-Skripts. Hmmm. Würde ich eigentlich nur machen wenn es nicht anders geht und signfikante Vorteile bietet. 
 Würde mir ungern die aktuelle Installation zerschiessen.
 Deswegen auch die Frage was da denn da nun genau anders ist.
 Gruss Ralf
- 
					
					
					
					
 ioBroker zu starten, wenn es bereits läuft, bringt diese Meldung. Also erst iobroker stoppen und dann wieder starten. /etc/init.d/iobroker.sh stop /etc/init.d/iobroker.sh startWas ergibt ? ls -l /etc/rc?.d/*iob*
- 
					
					
					
					
 @paul53 sagte in Fehler in iobroker.sh: /etc/init.d/iobroker.sh stop 
 /etc/init.d/iobroker.sh startHi Paul. Schon klar. Dachte Du wolltest sehen, ob das Script funktioniert. Und das tut es ja, wenn es feststellt, dass IObroker schon läuft oder? 
 Aber bitteschön:root@ioBroker-Rock64:~# /etc/init.d/iobroker.sh stop Stopping ioBrokerStopping iobroker controller daemon... iobroker controller daemon stopped. Exit code for "killall.sh": 123 root@ioBroker-Rock64:~# /etc/init.d/iobroker.sh start Starting ioBrokerStarting iobroker controller daemon... iobroker controller daemon started. PID: 3514 root@ioBroker-Rock64:~#Ich glaub hier ist was faul, oder? root@ioBroker-Rock64:~# ls -l /etc/rc?.d/*iob* ls: cannot access '/etc/rc?.d/*iob*': No such file or directory root@ioBroker-Rock64:~#Gruss Ralf 
- 
					
					
					
					
 @derrapf Es fehlen dei Links zum Starten und Stoppen. Mache update-rc.d iobroker.sh defaults reboot
- 
					
					
					
					
 LÄUFT!!! 
 Das war's. Danke!
 You made my day!Gruss Ralf 
 
		
	 
		
	 
			
		 
			
		