Domoticz ne démarre plus !

Forum dédié aux questions concernant la configuration de votre serveur sous Linux
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Domoticz ne démarre plus !

Message par patrice »

Bonjour, concernant la réinstallation il suffit de mettre à l'abri le fichier Domoticz.db les éventuels scripts dans le dossier /scripts et refaire une installation
sudo curl -L install.domoticz.com | sudo bash
Je dis ça mais je n'ai pas suivi tous vos échanges précédents peut être que c'est pas le plus malin comme manip

Envoyé de mon PULP 4G en utilisant Tapatalk
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Ghislain
Messages : 120
Inscription : 15 janv. 2017, 16:47
Localisation : Bourges (18)

Re: Domoticz ne démarre plus !

Message par Ghislain »

domcars0 a écrit :
Ghislain a écrit :Sinon.... tu supprimes le repertoire domoticz dans ton home, le domoticz.sh dans init.d et tu réinstalles ? :roll:

Je sais c'est barbare mais bon à un moment il faut y être lol
Et le fichier /etc/domoticz/setupVars.conf? Et les liens dans /etc/rc?.d/NNNdomoticz.sh , t'en fait quoi?
La suppression rapide d'un répertoire peut parfois augmenter les problèmes.
Je n'ai simplement pas ton répertoire dans etc lol et si je dit pas de bêtises les différents rc sont la pour les niveaux d'utilisateurs ?! donc vraiment au pire du pire tu les supprimes tous et voila mais bon... je suis intellectuellement réduit :mrgreen: mais bon 7 pages pour ça :roll: perso si ça plante je réinstalle (surtout que la c'est très simple) si ça replante je cherche oui ;)

Et domoticz n'est QU'UN répertoire pas de dépendance ou autre. tu ne télécharges en gros que un zip qui ce décompresse et hop tu ouvres

+1 patrice ;)

Bon courage à vous
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Domoticz ne démarre plus !

Message par patrice »

Oui, fait ce qui est dit dans mon message puis recopie domoticz.db dans le dossier domoticz et c'est réglé

Envoyé de mon PULP 4G en utilisant Tapatalk
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
domcars0
Messages : 238
Inscription : 18 févr. 2017, 20:23

Re: Domoticz ne démarre plus !

Message par domcars0 »

J'ai un peu modifié le script de démarrage de /etc/init.d, ceci pour nous permettre d'y voir (peut-être) un peu plus clair.
Pourrais tu :

A) creér un nouveau fichier /etc/init.d/domoticz.sh.new dans lequel tu mets ce qui suit (attention de ne pas oublier de ligne! ;o)

Code : Tout sélectionner

#! /bin/sh
### BEGIN INIT INFO
# Provides: domoticz
# Required-Start: $network $remote_fs $syslog
# Required-Stop:     $network $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Home Automation System
# Description:       This daemon will start the Domoticz Home Automation System
### END INIT INFO

# Do NOT "set -e"
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
/usr/local/bin/gpio export 17 out
/usr/local/bin/gpio export 18 out
/usr/local/bin/gpio export 27 out
/usr/local/bin/gpio export 22 out
/usr/local/bin/gpio export 23 out
/usr/local/bin/gpio export 24 out
/usr/local/bin/gpio export 25 out
/usr/local/bin/gpio export 12 out
DESC="Domoticz Home Automation System"
NAME=domoticz
USERNAME=pi
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

DAEMON=/home/pi/domoticz/$NAME
DAEMON_ARGS="-daemon"
#DAEMON_ARGS="$DAEMON_ARGS -daemonname $NAME -pidfile $PIDFILE"
DAEMON_ARGS="$DAEMON_ARGS -www 8080"
DAEMON_ARGS="$DAEMON_ARGS -sslwww 443"
#DAEMON_ARGS="$DAEMON_ARGS -log /tmp/domoticz.txt"
#DAEMON_ARGS="$DAEMON_ARGS -syslog"

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions

pidof_domoticz() {
    # if there is actually a domoticz process whose pid is in PIDFILE,
    # print it and return 0.
    if [ -e "$PIDFILE" ]; then
        log_daemon_msg "On test le fichier $PIDFILE"
        if pidof domoticz | tr ' ' '\n' | grep -w $(cat $PIDFILE); then
            PIG=`cat $PIDFILE`
            log_daemon_msg "Un process domoticz tourne deja. PID = $PID "
            return 0
        fi    
    fi
    return 1
}

#
# Function that starts the daemon/service
#
do_start()
{
        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
        log_daemon_msg "Check Test 1 ...\n";
        start-stop-daemon --chuid $USERNAME --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
                || return 1
        log_daemon_msg "Check Test 1 passed ...Check Test 2 ...";
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
                $DAEMON_ARGS \
                || return 2
        log_daemon_msg"Check Test 2 passed...\n";
}

#
# Function that stops the daemon/service
#
do_stop()
{
        # Return
        #   0 if daemon has been stopped
        #   1 if daemon was already stopped
        #   2 if daemon could not be stopped
        #   other if a failure occurred
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2
        # Wait for children to finish too if this is a daemon that forks
        # and if the daemon is only ever run from this initscript.
        # If the above conditions are not satisfied then add some other code
        # that waits for the process to drop all resources that could be
        # needed by services started subsequently.  A last resort is to
        # sleep for some time.
        start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
        [ "$?" = 2 ] && return 2
        # Many daemons don't delete their pidfiles when they exit.
        rm -f $PIDFILE
        return "$RETVAL"
}

case "$1" in
  start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  status)
        status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
        ;;
  reload)
        log_daemon_msg "Reloading $DESC" "$NAME"
        PID=$(pidof_domoticz) || true
        if [ "${PID}" ]; then
                kill -HUP $PID
        fi
        ;;
  restart)
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
          0|1)
                do_start
                case "$?" in
                        0) log_end_msg 0 ;;
                        1) log_end_msg 1 ;; # Old process is still running
                        *) log_end_msg 1 ;; # Failed to start
                esac
                ;;
          *)
                # Failed to stop
                log_end_msg 1
                ;;
        esac
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop|status|restart}" >&2
        exit 3
        ;;
esac

:
B) Vérifier les différences entre /etc/init.d/domoticz.sh.new et /etc/init.d/domoticz.sh
% sudo diff /etc/init.d/domoticz.sh.new /etc/init.d/domoticz.sh
La différence DOIT être

Code : Tout sélectionner

51d50
< 	log_daemon_msg "On test le fichier $PIDFILE"
53,54d51
< 	    PIG=`cat $PIDFILE`
< 	    log_daemon_msg "Un process domoticz tourne deja. PID = $PID "
70d66
< 	log_daemon_msg "Check Test 1 ...\n";
73d68
< 	log_daemon_msg "Check Test 1 passed ...Check Test 2 ...";
77d71
< 	log_daemon_msg"Check Test 2 passed...\n";

Sinon tu recommences en A)

C) Rendre le nouveau script executable (changer son 'mode' avec la commande chmod)
% sudo chmod 755 /etc/init.d/domoticz.sh.new

D) Renommer le fichier /etc/init.d/domoticz.sh en /etc/init.d/domoticz.sh.orig , et le fichier /etc/init.d/domoticz.sh.new en /etc/init.d/domoticz.sh, càd:
% sudo mv /etc/init.d/domoticz.sh /etc/init.d/domoticz.sh.orig
% sudo mv /etc/init.d/domoticz.sh.new /etc/init.d/domoticz.sh
(mv = move)

e) Tu rebootes , puis tu te logues et tu tapes
% sudo systemctl status -l domoticz

Ca donne quoi ?
La liberté a un prix... celui de l'effort.
ChristianM
Messages : 60
Inscription : 20 déc. 2016, 09:42

Re: Domoticz ne démarre plus !

Message par ChristianM »

domcars0 a écrit : A) creér un nouveau fichier /etc/init.d/domoticz.sh.new dans lequel tu mets ce qui suit (attention de ne pas oublier de ligne! ;o)
Je n'ai pas la permission sur le dossier. Comment est-ce-que je fais ? Je connais sudo mais là ? (j'ai fait Fichier/Créer un nouveau/fichier vide)
bruno_ghost17
Messages : 97
Inscription : 01 févr. 2016, 18:56
Localisation : Rochefort(17)

Re: Domoticz ne démarre plus !

Message par bruno_ghost17 »

salut

sudo pico /etc/init.d/domoticz.sh.new

peut etre

@domcars0 , je vois que tu maitrises bien le sujet avec le bon esprit , bravo ! :D

Bruno.
Raspi 2 - RFxCom - sondes Oregon
domcars0
Messages : 238
Inscription : 18 févr. 2017, 20:23

Re: Domoticz ne démarre plus !

Message par domcars0 »

Oui, Bruno as raison tu peux utiliser l'éditeur pico, si il n'est pas installé sur ton Pi, essaies avec 'nano' ( un autre petit editeur en console, % sudo nano /etc/init.d/domoticz.sh.new).. Si ni l'un ni l'autre ne sont installés, installes en un
% sudo apt-get update && sudo apt-get install pico
@bruno: Merci, mais je suis nul en cuisine, en sport, en philo, etc.. alors je me rattrape comme je peux . ;)
La liberté a un prix... celui de l'effort.
ChristianM
Messages : 60
Inscription : 20 déc. 2016, 09:42

Re: Domoticz ne démarre plus !

Message par ChristianM »

domcars0 a écrit :J'ai un peu modifié le script de démarrage de /etc/init.d, ceci pour nous permettre d'y voir (peut-être) un peu plus clair.
Pourrais tu :
............

Ca donne quoi ?
Tout d'abord, merci à bruno_ghost17.
Je n'ai pas tout à fait comme toi :
différence_domotic.sh_et_domoticz.sh.new.JPG
différence_domotic.sh_et_domoticz.sh.new.JPG (33.74 Kio) Consulté 10523 fois
Je préfère poser la question de savoir si je continue, avant de faire une bêtise !
domcars0
Messages : 238
Inscription : 18 févr. 2017, 20:23

Re: Domoticz ne démarre plus !

Message par domcars0 »

Parfait, tu peux continuer (il y a juste une fermeture de condition 'fi' qui est à la ligne 56 au lieu de la ligne 54, c'est pas grave).
Oups attend, un truc bizarre :
la première ligne de ton diff
0a1
>
indique que le fichier /etc/init.d/domoticz.sh (celui de droite dans ta commande diff , d'où le '>', le signe '<' concernant le premier nom de fichier passé en paramètre à la commande diff ) commencerait par une ligne vierge ... tu pourrais vérifier stp ...Car ça pourrait être la raison de ton problème!!
La commande 'systemctl' n'aimant pas , mais alors pas du tout, les scripts qui commencent par une ligne vierge!
Si cette ligne vierge existe effectivement, tu la supprimes et tu rebootes (sans continuer la manip précédente) .. et tu nous dis quoi :lol: (oui je suis chti d'origine!).
Si c'est ça (et même si c'est pas ça!) j'aurais encore appris un truc en cherchant à résoudre ce problème! Je ne savais pas que la commande systemctl se plantait sur les scripts qui commençaient par une ligne vierge. J'ai vérifié sur mon Pi pour en être certain, si je rajoute une ligne vierge sur n'importe quel script de démarrage de service ... le service ne démarre pas ;). Alors que si on lance ce script depuis un shell (c'est à dire à la main) , alors il démarre sans problème. C'est exactement le comportement que ton système a.
La liberté a un prix... celui de l'effort.
ChristianM
Messages : 60
Inscription : 20 déc. 2016, 09:42

Re: Domoticz ne démarre plus !

Message par ChristianM »

domcars0 a écrit : la première ligne de ton diff
0a1
>
indique que le fichier /etc/init.d/domoticz.sh
commencerait par une ligne vierge ... tu pourrais vérifier stp ...Car ça pourrait être la raison de ton problème!!
La commande 'systemctl' n'aimant pas , mais alors pas du tout, les scripts qui commencent par une ligne vierge!
Si cette ligne vierge existe effectivement, tu la supprimes et tu rebootes (sans continuer la manip précédente) .. et tu nous dis quoi :lol: (oui je suis chti d'origine!).
Si c'est ça (et même si c'est pas ça!) j'aurais encore appris un truc en cherchant à résoudre ce problème! Je ne savais pas que la commande systemctl se plantait sur les scripts qui commençaient par une ligne vierge. J'ai vérifié sur mon Pi pour en être certain, si je rajoute une ligne vierge sur n'importe quel script de démarrage de service ... le service ne démarre pas ;). Alors que si on lance ce script depuis un shell (c'est à dire à la main) , alors il démarre sans problème. C'est exactement le comportement que ton système a.
:D
images.jpg
images.jpg (3.22 Kio) Consulté 10455 fois
images_fb.jpg
images_fb.jpg (20.23 Kio) Consulté 10455 fois
Je dirai que ta ténacité a payé ! Apparemment cela fonctionne après 2 reboot.
Tu auras donc mis à profit ce dysfonctionnement pour mettre en évidence un bug de systemctl. Comme quoi tu avais raison de dire qu'il faut toujours chercher les raisons d'un dysfonctionnement ; bien qu'en informatique ce ne soit pas toujours logique.

Si ça recommence, je te ferai signe.

Merci encore pour tout : la solution du problème et surtout tes explications de toutes les manipulations que tu m'as faites faire.
Répondre