I think it's to do with write permissions.
If I start OR from rc.local it works perfectly.
If I stop and restart it afterwards from a command line, even using sudo sh openremote.sh start, it has the same error.
I've just had the same issue with a new installation on an Ubuntu 16, Odroid C2, when trying to start OpenRemote using a systemD service file.
Thankfully this topic helped me to edit the
../webapps/controller/WEB-INF/classes/config.properties
file to set the absolute path :-)
The SystemD method of starting OpenRemote now works perfectly :-)
If anyone is interested, here is a copy of the text from the service file, from /etc/systemd/system
Please note that I setup a SymLink from /opt/OR-Pro to wherever my OpenRemote 2.x instance is located, but the Absolute path within config.properties is that of the OpenRemote 2.x installation
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=OpenRemote
ConditionFileIsExecutable=/opt/OR-Pro/bin/openremote.sh
After=network.target
After=network-online.target
[Service]
Type=forking
ExecStart=/opt/OR-Pro/bin/openremote.sh start
ExecStartPost=/bin/bash -c "/bin/touch /var/log/openremote.log"
ExecStartPost=/bin/bash -c "/bin/echo OpenRemote Started $(date) >> /var/log/openremote.log"
ExecStop=/bin/bash -c "/bin/echo OpenRemote stopped $(date) >> /var/log/openremote.log"
ExecStop=/opt/OR-Pro/bin/openremote.sh stop
TimeoutSec=0
RemainAfterExit=yes
StandardOutput=journal+console
StandardError=journal+console
[Install]
WantedBy=multi-user.target
sudo chown root:root openremote.service
sudo systemctl daemon-reload
sudo systemctl enable openremote.service
sudo systemctl disable openremote.service
sudo systemctl start openremote
sudo systemctl stop openremote
sudo systemctl status openremote
sudo systemctl reload openremote