Mattermost, Inc.

[Solved] Debian 8 - Issue with Mattermost service


I’m quite new to mattermost. I’ve been trying to install it on a Debian 8.

Everything is going well, my nginx is well configured as well as my mattermost installation.

I’ve been experiencing issue when I’m trying to run the mattermost daemon (/etc/init.d/mattermost). The service status says it’s active and working:
● mattermost.service - LSB: Mattermost Group Chat
Loaded: loaded (/etc/init.d/mattermost)
Active: active (exited) since Mon 2016-02-01 13:46:21 CET; 8min ago
Process: 3503 ExecStop=/etc/init.d/mattermost stop (code=exited, status=0/SUCCESS)
Process: 3508 ExecStart=/etc/init.d/mattermost start (code=exited, status=0/SUCCESS)

Feb 01 13:46:21 mattermost[3508]: Starting Mattermost: mattermost.

However, the website does not work. It only works when I run manually /opt/mattermost/bin/platform.
I see the request going trough nginx, but they do not seem to be forwarded to the mattermost daemon (I have a 502 error Bad gateway occuring).

Does anybody is experiencing the same issue ?

here is my service declaration from the documentation:

#! /bin/sh
# Provides:          mattermost
# Required-Start:    $network $syslog
# Required-Stop:     $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Mattermost Group Chat
# Description:       Mattermost: An open-source Slack

. /lib/lsb/init-functions

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 --start --quiet \
        --chuid $MATTERMOST_USER:$MATTERMOST_GROUP --chdir $MATTERMOST_ROOT --background \
        --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
        || return 1
    start-stop-daemon --start --quiet \
        --chuid $MATTERMOST_USER:$MATTERMOST_GROUP --chdir $MATTERMOST_ROOT --background \
        --make-pidfile --pidfile $PIDFILE --exec $DAEMON \
        || 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 --exec $DAEMON
    [ "$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
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
    status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
        # If the "reload" option is implemented then remove the
        # 'force-reload' alias
        log_daemon_msg "Restarting $DESC" "$NAME"
        case "$?" in
                case "$?" in
                        0) log_end_msg 0 ;;
                        1) log_end_msg 1 ;; # Old process is still running
                        *) log_end_msg 1 ;; # Failed to start
                # Failed to stop
                log_end_msg 1
        echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
        exit 3

exit 0

Keep up the good work :wink:
Samir Boulil

I´ve got exactly the same problem and it seems to be this:

Active: active (exited) since Mon 2016-02-01 13:46:21 CET; 8min ago

So, if you check the systemctl you will see that the mattermost service is not running (exited).

I followed some advices found online and checked the logfile:

[2016/02/05 08:59:28 CET] [INFO] Current version is 1.3.0 (4896/Mon Dec 14 23:57:09 UTC 2015/f51d45f6cba0e5a1249146afe4a1c78cf32b7598)
[2016/02/05 08:59:28 CET] [INFO] Current working directory is /opt/mattermost/bin
[2016/02/05 08:59:28 CET] [INFO] Loaded config file from /opt/mattermost/config/config.json
[2016/02/05 08:59:28 CET] [INFO] Server is initializing…
[2016/02/05 08:59:28 CET] [INFO] Pinging sql master database
[2016/02/05 08:59:28 CET] [INFO] Pinging sql replica-0 database
[2016/02/05 08:59:28 CET] [INFO] Starting Server…
[2016/02/05 08:59:28 CET] [INFO] Server is listening on :8065
[2016/02/05 08:59:28 CET] [INFO] RateLimiter is enabled
[2016/02/05 09:05:26 CET] [INFO] Stopping Server…
[2016/02/05 09:05:26 CET] [INFO] Closing SqlStore

It seems, there is a mistake within the /etc/init.d/mattermost … unfortunately I have no idea as I took it from the installation guide.

If somebody have any idea to fix that, I´ll appreciate it and if I find out, i will post it :wink:

Good Catch! I’ll also try to look it up.

Surely a permission issue…

Thanks :wink:

Did you fix it?
I have still the same problem :confused:

Nope :s…

What I do to make it work is /opt/mattermost/bin/platform &. So that I can still use it.


./platform -config=/opt/mattermost/config/config.json

you get the following error:

panic: Error decoding config file=/opt/mattermost/config/config.json, err=invalid character ‘"’ after object key:value pair

I checked the config.json but couldn´t find any mistake and I compared with the original from the packet, too. No clue.

Can you verify your config file is well formed json, using something like this

The error message loooks like it’s saying your config file isn’t well formed.

I went further on:
I created a mattermost.service within the systemd. The following link was helpful

After a reboot I checked whether the service was started, but wasn´t.

I found on github a similar issue, where was a problem with the user rights

For a test I changed the User in the mattermost.service file to root … and it works.
So finally: use the systemd file and fix the user rights and the problem is solved :wink:

I had the same issue. The problem was, that on boot the system starts mattermost before mysql. Without mysql running, mattermost exited silently. As a simple fix I added mysql to Required-Start inside the init.d script. After a systemctl enable mattermost.service mattermost starts without problems on boot.