NEWS
[gelöst]iobroker startet nur noch manuell, nicht mehr automatisch
-
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)
-
Es fehlt die erste Zeile:
#!/bin/bash
über
### BEGIN INIT INFO
Da ich vermute, dass der Editor nano die .save Dateien erzeugt hat, solltest Du die Datei nicht im Verzeichnis /etc/init.d editieren.
mv /etc/init.d/iobroker.sh /opt/iobroker/ nano /opt/iobroker/iobroker.sh ls -l /opt/iobroker/iobroker.sh*
Wenn die Dateilänge stimmt
mv /opt/iobroker/iobroker.sh /etc/init.d/ update-rc.d iobroker.sh defaults reboot
-
root@cubietruck:~# cat /etc/init.d/iobroker.sh
#!/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 $RETVAL
root@cubietruck:~#