Service Domoticz don't start code=exited, status=217/USER

Please use template to report bugs and problems. Post here your questions when not sure where else to post
Only for bugs in the Domoticz application! other problems go in different subforums!
Forum rules
Before posting here, make sure you are on the latest Beta or Stable version.
If you have problems related to the web gui, clear your browser cache + appcache first.

Use the following template when posting here:

Version: xxxx
Platform: xxxx
Plugin/Hardware: xxxx
Description:
.....

If you are having problems with scripts/blockly, always post the script (in a spoiler or code tag) or screenshots of your blockly

If you are replying, please do not quote images/code from the first post
Post Reply
tich3012
Posts: 5
Joined: Wednesday 17 May 2017 13:07
Target OS: Raspberry Pi
Domoticz version: 3.7450
Contact:

Service Domoticz don't start code=exited, status=217/USER

Post by tich3012 » Wednesday 17 May 2017 13:29

Hello,

It's my first post on the forum.

Version : 3.7450
Platform : Raspbian Pixel
Hardware : Rapsberry pi 3

Everything work week on this config since on years.
And a few day ago my little daughters stop my raspberry and since this I have some trouble to run Domoticz.
First I have som trouve with Hardware Raspberry GPIO, when I insert this hardware the domoticz service start and stop automatically.
I succes this I don't how.

Now the problem is when I want to start the service I have this problem : code=exited, status=217/USER and the service don't start

The domoticz status

Code: Select all

 sudo systemctl status domoticz.service
● domoticz.service - domoticz_service
   Loaded: loaded (/etc/systemd/system/domoticz.service; enabled)
   Active: failed (Result: exit-code) since mar. 2017-05-16 22:12:18 CEST; 14h ago
  Process: 2281 ExecStart=/home/pi/domoticz/domoticz -www 8080 -log /home/pi/domoticz.log -loglevel 0 (code=exited, status=217/USER)
 Main PID: 2281 (code=exited, status=217/USER)

mai 16 22:12:18 RaspPixel systemd[1]: Started domoticz_service.
mai 16 22:12:18 RaspPixel systemd[1]: domoticz.service: main process exited, code=exited, status=217/USER
mai 16 22:12:18 RaspPixel systemd[1]: Unit domoticz.service entered failed state.
Automatic start
When I start domoticz like this

Code: Select all

 sudo /home/pi/domoticz/domoticz
It works Fine

Code in my domoticz.service

Code: Select all

sudo nano /etc/systemd/system/domoticz.service

Code: Select all

[Unit]
       Description=domoticz_service
[Service]
       User=domoticz
       Group=domoticz
       ExecStart=/home/pi/domoticz/domoticz -www 8080  -log /home/pi/domoticz.log -loglevel 0
       WorkingDirectory=/home/pi
       # Give the right to open priviliged ports. This allows you to run on a port <1024 without root permissions (user/group setting above)
       #
       # The next line was previously working, so try this on older systems.
       # ExecStartPre=setcap 'cap_net_bind_service=+ep' /home/domoticz/domoticz/domoticz
       #
       # The below works on ubuntu 16 LTS.
       #CapabilityBoundingSet=CAP_NET_BIND_SERVICE
       #Restart=on-failure
       #RestartSec=1m
       #StandardOutput=null
[Install]
       WantedBy=multi-user.target
File domoticz.sh in /etc/init.d/

Code: Select all

sudo nano /etc/init.d/domoticz.sh
Result

Code: Select all

#! /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"

/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

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
DESC="Domoticz Home Automation System"
NAME=domoticz
USERNAME=pi
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

DAEMON=/home/$USERNAME/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
        if pidof domoticz | tr ' ' '\n' | grep -w $(cat $PIDFILE); then
            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
        start-stop-daemon --chuid $USERNAME --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
                || return 1
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
                $DAEMON_ARGS \
                || return 2
}

#
# 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

:
Fichier domoticz.sh /home/pi/domoticz/

Code: Select all

 sudo nano /home/pi/domoticz/domoticz.sh
Result

Code: Select all

#! /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
DESC="Domoticz Home Automation System"
NAME=domoticz
USERNAME=pi
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

DAEMON=/home/$USERNAME/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
        if pidof domoticz | tr ' ' '\n' | grep -w $(cat $PIDFILE); then
            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
        start-stop-daemon --chuid $USERNAME --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
                || return 1
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
                $DAEMON_ARGS \
                || return 2
}

#
# 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

:
I don't know what I can do, I'm lost, so If you can help I appreciate

Thanks
Last edited by tich3012 on Friday 19 May 2017 21:01, edited 1 time in total.

tich3012
Posts: 5
Joined: Wednesday 17 May 2017 13:07
Target OS: Raspberry Pi
Domoticz version: 3.7450
Contact:

Re: code=exited, status=217/USER

Post by tich3012 » Thursday 18 May 2017 9:11

Hello

Anybody have an idea for this? or a way to find and solve my problem?

tich3012
Posts: 5
Joined: Wednesday 17 May 2017 13:07
Target OS: Raspberry Pi
Domoticz version: 3.7450
Contact:

Re: Service Domoticz don't start code=exited, status=217/USER

Post by tich3012 » Friday 19 May 2017 21:02

Hello

Any pist to help me?

User avatar
jvdz
Posts: 1017
Joined: Tuesday 30 December 2014 20:25
Target OS: Raspberry Pi
Domoticz version: Stable
Location: Netherlands
Contact:

Re: Service Domoticz don't start code=exited, status=217/USER

Post by jvdz » Friday 19 May 2017 21:41

Could it be the file security causing the issue?
Is the user Pi the owner of the files in the domoticz directory?

Jos

tich3012
Posts: 5
Joined: Wednesday 17 May 2017 13:07
Target OS: Raspberry Pi
Domoticz version: 3.7450
Contact:

Re: Service Domoticz don't start code=exited, status=217/USER

Post by tich3012 » Saturday 20 May 2017 19:09

Hello thanks for you response

pi is the owner for Domoticz folder

tich3012
Posts: 5
Joined: Wednesday 17 May 2017 13:07
Target OS: Raspberry Pi
Domoticz version: 3.7450
Contact:

Re: Service Domoticz don't start code=exited, status=217/USER

Post by tich3012 » Saturday 20 May 2017 21:16

I found

in my old file domoticz.service i have

Code: Select all

[Unit]
       Description=domoticz_service
[Service]
       User=domoticz
       Group=domoticz
       ExecStart=/home/pi/domoticz/domoticz -www 8080  -log /home/pi/domoticz.log -loglevel 0
       WorkingDirectory=/home/pi
       # Give the right to open priviliged ports. This allows you to run on a port <1024 without root permissions (user/group setting above)
       #
       # The next line was previously working, so try this on older systems.
       # ExecStartPre=setcap 'cap_net_bind_service=+ep' /home/domoticz/domoticz/domoticz
       #
       # The below works on ubuntu 16 LTS.
       #CapabilityBoundingSet=CAP_NET_BIND_SERVICE
       #Restart=on-failure
       #RestartSec=1m
       #StandardOutput=null
[Install]
       WantedBy=multi-user.target
Change by this

Code: Select all

[Service]
       User=pi
       Group=pi


Thanks

Post Reply

Who is online

Users browsing this forum: Google [Bot] and 4 guests