NEWS
[gelöst]iobroker startet nur noch manuell, nicht mehr automatisch
-
Ob es damit zusammenhängen könnte weiß ich nicht. `
Nein, wenn Du ioBroker manuell starten kannst und es dann funktioniert, hat es nichts mit dem Autostart zu tun.
@blackangel15741:root@cubietruck:~# update-rc.d -f iobroker.sh remove
insserv: script iobroker.sh.save.1: service iobroker.sh already provided!
insserv: script iobroker.sh.save.2: service iobroker.sh already provided!
insserv: script iobroker.sh.save.3: service iobroker.sh already provided!
insserv: script iobroker.sh.save.4: service iobroker.sh already provided! `
Diese Meldung hatte ich nicht erwartet. Offenbar wurde iobroker.sh nicht aus den runlevels gelöscht.Habe gerade gelesen, dass die Datei nicht unter /etc/init.d existieren darf, damit dies funktioniert.
` > REMOVING SCRIPTSWhen invoked with the remove option, update-rc.d removes any links in the /etc/rcrunlevel.d directories to the script /etc/init.d/ name. The script must have been deleted already. If the script is still present then update-rc.d aborts with an error message. `
Also vorher umbennen und anschießend wieder zurück in iobroker.sh.cd /etc/init.d mv iobroker.sh iob.sh update-rc.d -f iobroker.sh remove mv iob.sh iobroker.sh update-rc.d iobroker.sh defaults reboot
reboot nur, wenn die Meldungen o.k. sind.
-
Startet immer noch nicht automatisch.
root@cubietruck:~# cd /etc/init.d
root@cubietruck:/etc/init.d# mv iobroker.sh iob.sh
root@cubietruck:/etc/init.d# update-rc.d -f iobroker.sh remove
insserv: script iob.sh: service iobroker.sh already provided!
insserv: script iobroker.sh.save.2: service iobroker.sh already provided!
insserv: script iobroker.sh.save.3: service iobroker.sh already provided!
insserv: script iobroker.sh.save.4: service iobroker.sh already provided!
root@cubietruck:/etc/init.d# mv iob.sh iobroker.sh
root@cubietruck:/etc/init.d# update-rc.d iobroker.sh defaults
insserv: script iobroker.sh.save.1: service iobroker.sh already provided!
insserv: script iobroker.sh.save.2: service iobroker.sh already provided!
insserv: script iobroker.sh.save.3: service iobroker.sh already provided!
insserv: script iobroker.sh.save.4: service iobroker.sh already provided!
root@cubietruck:/etc/init.d# reboot
-
root@cubietruck:~# iobroker start
Starting iobroker controller daemon…
iobroker controller daemon started. PID: 949
root@cubietruck:~# cat /opt/iobroker/node_modules/iobroker/install/linux/install
.sh
#!/bin/bash
#Create empty directories
IO_USER=$USER
NODE=
which node
#Create user if first install
#if [ ! -f "/opt/iobroker/conf/iobroker.json" ]; then
# if [ $(cat /etc/passwd | grep "/home" |cut -d: -f1 | grep '^iobroker/t> | wc -l) -eq 0 ]
# then
# read -p "Use current user '$USER' for iobroker? If not, the 'iobroker' user will be created.! [Y/n]" yn
# case $yn in
# [Nn]* ) echo "Create user iobroker …";
# apt-get install sudo;
# useradd iobroker;
# adduser iobroker sudo;
# IO_USER=iobroker;
# break;;
# [Yy]* ) echo "Use user '$USER' for iobroker.";;
# * ) echo "Use user $USER for iobroker.";;
# esac
# else
# IO_USER=iobroker
# fi
#else
if [ $(cat /etc/passwd | grep "/home" |cut -d: -f1 | grep '^iobroker/t> | wc -l) -eq 0 ]
then
IO_USER=$USER
else
IO_USER=iobroker
fi
echo "Use user $IO_USER for install."
#fi
#Modify /etc/couchdb/local.ini. Replace ";bind_address = 127.0.0.1" with "bind_address = 0.0.0.0"
#if grep -Fq ";bind_address = 127.0.0.1" /etc/couchdb/local.ini; then
# sed -i -e 's/;bind_address = 127.0.0.1/bind_address = 0.0.0.0/g' /etc/couchdb/local.ini
# /usr/bin/couchdb -d
# /usr/bin/couchdb -b
#fi
## if iobroker.sh not exists. Copy it
if [ ! -f "/etc/init.d/iobroker.sh" ]; then
cp /opt/iobroker/node_modules/iobroker.js-controller/../iobroker/install/linux/iobroker.sh /etc/init.d/iobroker.sh
fi
if [ ! -f "/usr/bin/iobroker" ]; then
echo 'node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js $1 $2 $3 $4 $5' > /usr/bin/iobroker
fi
#Set rights
echo "Set permissions…"
#find /opt/iobroker/node_modules/iobroker.js-controller/ -type d -exec chmod 777 {} ;
#find /opt/iobroker/node_modules/iobroker.js-controller/ -type f -exec chmod 777 {} ;
#chown -R $IO_USER:$IO_USER /opt/iobroker/node_modules/iobroker.js-controller/
chmod 755 /etc/init.d/iobroker.sh
chmod 755 /usr/bin/iobroker
#Replace user pi with current user
sed -i -e "s/IOBROKERUSER=.*/IOBROKERUSER=$IO_USER/" /etc/init.d/iobroker.sh
NODE=${NODE////\/}
sed -i -e s/NODECMD=.*/NODECMD=$NODE/ /etc/init.d/iobroker.sh
chown root:root /etc/init.d/iobroker.sh
update-rc.d iobroker.sh defaults
# Start the service!
echo "Start iobroker..."
cd /opt/iobroker/node_modules/iobroker.js-controller/
#chmod 777 * -R
./iobroker start
echo "call http://ip_address:8081/ in browser to get the AdminUI of ioBroker"root@cubietruck:~#
-
Startet immer noch nicht automatisch. `
Da würde ich bei den Meldungen auch nicht erwarten. Interessant ist das
@blackangel15741:root@cubietruck:/etc/init.d# update-rc.d -f iobroker.sh remove
insserv: script iob.sh: service iobroker.sh already provided! `
Offenbar wurde erkannt, dass die Datei lediglich umbenannt wurde. Also muss man die Datei iobroker.sh erst in einen anderen Ordner verschieben und anschließend wieder zurück ?mv /etc/init.d/iobroker.sh /opt/iobroker/ update-rc.d -f iobroker.sh remove mv /opt/iobroker/iobroker.sh /etc/init.d/
-
Unverändert kein automatischer start von iobroker
root@cubietruck:~# mv /etc/init.d/iobroker.sh /opt/iobroker/
root@cubietruck:~# update-rc.d -f iobroker.sh remove
insserv: script iobroker.sh.save.2: service iobroker.sh already provided!
insserv: script iobroker.sh.save.3: service iobroker.sh already provided!
insserv: script iobroker.sh.save.4: service iobroker.sh already provided!
root@cubietruck:~# mv /opt/iobroker/iobroker.sh /etc/init.d/
root@cubietruck:~# reboot
-
Was passiert bei ?
mv /etc/init.d/iobroker.sh /opt/iobroker/ update-rc.d -f iobroker.sh remove update-rc.d -f iobroker.sh remove
-
root@cubietruck:~# mv /etc/init.d/iobroker.sh /opt/iobroker/
root@cubietruck:~# update-rc.d -f iobroker.sh remove
insserv: script iobroker.sh.save.2: service iobroker.sh already provided!
insserv: script iobroker.sh.save.3: service iobroker.sh already provided!
insserv: script iobroker.sh.save.4: service iobroker.sh already provided!
root@cubietruck:~# update-rc.d -f iobroker.sh remove
insserv: script iobroker.sh.save.2: service iobroker.sh already provided!
insserv: script iobroker.sh.save.3: service iobroker.sh already provided!
insserv: script iobroker.sh.save.4: service iobroker.sh already provided!
root@cubietruck:~# service iobroker.sh already provided!
root@cubietruck:~# update-rc.d -f iobroker.sh remove
insserv: script iobroker.sh.save.2: service iobroker.sh already provided!
insserv: script iobroker.sh.save.3: service iobroker.sh already provided!
insserv: script iobroker.sh.save.4: service iobroker.sh already provided!
root@cubietruck:~#
-
Muss jetzt wieder was zurück verschoben werden?
-
Muss jetzt wieder was zurück verschoben werden? `
Später.Es sieht so aus, dass man die Links wohl manuell löschen muss. Was ergibt
ls -l /etc/rc?.d/*iob* ls -l /etc/init.d/*iob*
-
root@cubietruck:~# ls -l /etc/rc?.d/iob
ls: cannot access /etc/rc?.d/iob: No such file or directory
root@cubietruck:~# ls -l /etc/init.d/iob
-rwxr-xr-x 1 root root 1107 Jan 29 20:48 /etc/init.d/iobroker.sh.save
-rwxr-xr-x 1 root root 1135 Jan 29 20:48 /etc/init.d/iobroker.sh.save.1
-rwxr-xr-x 1 root root 1106 Jan 29 20:57 /etc/init.d/iobroker.sh.save.2
-rwxr-xr-x 1 root root 1107 Jan 29 21:52 /etc/init.d/iobroker.sh.save.3
-rwxr-xr-x 1 root root 1107 Jan 29 21:52 /etc/init.d/iobroker.sh.save.4
root@cubietruck:~#
-
Das sind die Übeltäter ! Die sollten gelöscht werden !
rm /etc/init.d/iobroker* ls -l /etc/init.d/iob*
-
root@cubietruck:~# ls -l /etc/rc?.d/iob
ls: cannot access /etc/rc?.d/iob: No such file or directory
root@cubietruck:~# ls -l /etc/init.d/iob
-rwxr-xr-x 1 root root 1107 Jan 29 20:48 /etc/init.d/iobroker.sh.save
-rwxr-xr-x 1 root root 1135 Jan 29 20:48 /etc/init.d/iobroker.sh.save.1
-rwxr-xr-x 1 root root 1106 Jan 29 20:57 /etc/init.d/iobroker.sh.save.2
-rwxr-xr-x 1 root root 1107 Jan 29 21:52 /etc/init.d/iobroker.sh.save.3
-rwxr-xr-x 1 root root 1107 Jan 29 21:52 /etc/init.d/iobroker.sh.save.4
root@cubietruck:~# rm /etc/init.d/iobroker*
root@cubietruck:~# ls -l /etc/init.d/iob*
ls: cannot access /etc/init.d/iob*: No such file or directory
root@cubietruck:~#
-
Nun zurück verschieben und aktivieren.
mv /opt/iobroker/iobroker.sh /etc/init.d/ ls -l /etc/init.d/iob*
Wenn die Ausgabe eine ausführbare Datei iobroker.sh mit der Größe 1099 Byte zeigt, dann
update-rc.d iobroker.sh defaults reboot
-
root@cubietruck:~# mv /opt/iobroker/iobroker.sh /etc/init.d/
root@cubietruck:~# ls - l /etc/init.d/iob*
ls: cannot access -: No such file or directory
ls: cannot access l: No such file or directory
/etc/init.d/iobroker.sh
root@cubietruck:~#
-
Da ist ein Leerzeichen zwischen - und l (ls -l). das muss weg.
-
Danke für den Hinweis
Sind keine 1099
root@cubietruck:~# ls -l /etc/init.d/iob*
-rwxr-xr-x 1 root root 1087 Jan 29 22:23 /etc/init.d/iobroker.sh
root@cubietruck:~#
-
Oh, sind da 12 Byte verloren gegangen ? Poste mal den Inhalt in Code-Tags (oben, 4. Button: Code).
cat /etc/init.d/iobroker.sh
-
Wie mache ich das ?
-
Wie mache ich das ? `
Über dem Editor-Fenster des Forums sind mehrere Button: B i u Quote Code List usw.Du klickst auf Code und an der Stelle, an der dann der Cursor steht, fügst Du den Text aus dem Terminalfenster ein.
-
root@cubietruck:~# cat /etc/init.d/iobroker.sh
### 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 $RETVAL
root@cubietruck:~#
geändert: Code in Code-tags; Homoran (Mod)