Forum KNX francophone / English KNX forum
Démarrage au boot d'eibd et linknx - Version imprimable

+- Forum KNX francophone / English KNX forum (https://www.knx-fr.com)
+-- Forum : Français (https://www.knx-fr.com/forumdisplay.php?fid=3)
+--- Forum : Logiciels libres (linknx, knxweb, pKNyX,...) (https://www.knx-fr.com/forumdisplay.php?fid=10)
+--- Sujet : Démarrage au boot d'eibd et linknx (/showthread.php?tid=3365)



Démarrage au boot d'eibd et linknx - wamilou - 13/06/2014

Bonjour à tous,

J'aimerai que eibd et linknx démarre au boot de mon raspberry pi. Alors j'ai fait des scripts dans /etc/init.d/xxx et je les ajoutais avec sudo update.rc xxx defaults mais les programmes ne veulent pas démarrer alors que les scripts sont bien lancés.

Dans un 2ème temps, j'ai voulu essayé avec crontab mais pareil, les scripts s'exécutent mais eibd et linknx semble refuser de démarrer.

Est-ce que quelqu'un aurait une idée pourquoi celà ne marche pas et qui aurait une solution ?
Merci d'avance.


RE: Démarrage au boot d'eibd et linknx - chtiloft - 13/06/2014

avec quel user tu lances ton script à la main ? pi ?


RE: Démarrage au boot d'eibd et linknx - wamilou - 13/06/2014

Avec la méthode /etc/init.d/, c'est le root qui exécute.
Et avec la méthode de crontab, je le fais avec pi.

Mais quand je teste mes scripts, ils marchaient quand je les exécutais à la main directement.


RE: Démarrage au boot d'eibd et linknx - chtiloft - 13/06/2014

passe tout en verbeux, (DEBUG)
update.rc

as tu des logs ?


RE: Démarrage au boot d'eibd et linknx - wamilou - 13/06/2014

Hum, comment je passe en mode debug exactement ?
Et ensuite, où s'est que je vais recupérer le log ?

Je suis bon en linux mais j'ai jamais créer de "service" qui démarre au boot Tongue


RE: Démarrage au boot d'eibd et linknx - tru - 13/06/2014

Typical case for this kind of problem - works when started manually but not in the boot cycle or crontab: different environment variables.
So check all paths of the binaries and library paths.
To simulate: unset all environment variables and start it manually again.

Hope this helps




RE: Démarrage au boot d'eibd et linknx - wamilou - 16/06/2014

Alors j'ai fait quelques tests avec vos réponses et je pense qu'en fait, j'ai pas fait ce qu'il fallait, alors je vous passe mon script parce que je pense qu'il y a une erreur dedans (j'ai ajouté le PATH pour modifier la variable d'environnement à l'exécution du script)

EDIT : Script modifié
Code :
#!/bin/sh
### BEGIN INIT INFO
# Provides:          knx
# Required-Start:    $syslog $remote_fs $network
# Required-Stop:     $syslog $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       Provides knx services for raspberry pi
### END INIT INFO

startKnx() {
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
    sudo -u pi eibd -d -D -S -T -i ipt:192.168.1.10:3671
    sudo -u pi linknx -d --config=/var/lib/linknx/linknx.xml --write=/var/lib/linknx/linknx.xml
    echo "KNX services started" >> sudo -u pi /home/pi/knx.log
}

#
# main
#

case "$1" in
    start)
        startKnx
        ;;
        stop)
        ;;
        status)
        ;;
esac

#

J'ai ajouté aussi le echo pour tester voir si le script est exécuté au boot mais il semble que non, alors que pourtant j'ai bien fait la commande suivante :
Code :
sudo update-rc.d knx defaults

EDIT : J'obtiens ceci (j'ai modifié un peu mon script entre temps) :
Code :
update-rc.d: using dependency based boot sequencing
insserv: warning: current start runlevel(s) (3 5) of script `knx' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 6) of script `knx' overrides LSB defaults (0 1 6).
insserv: warning: script 'mathkernel' missing LSB tags and overrides

Je pense m'être trompé dans la partie "INIT INFO" mais comme je n'ai jamais fait de script de démarrage, je sais pas si j'ai une erreur :/

De plus, j'ai testé que le script marche naturellement dans un environnement "vide" avec :
Code :
sudo env -i /etc/init.d/knx start

EDIT 2 : J'ai finalement refait un script exécuté avec crontab qui fait la même chose et qui marche cette fois-ci, merci à vous pour votre aide Smile