Put this in a script and post the output…
from org.slf4j import Logger, LoggerFactory
log = LoggerFactory.getLogger("org.eclipse.smarthome.model.script.Rules")
import sys
log.debug("JSR223: version=[{}]".format(sys.version))
log.debug("JSR223: path=[{}]".format(sys.path))
Here is what I get…
2018-10-08 17:25:34.848 [DEBUG] [org.eclipse.smarthome.model.script.Rules] - JSR223: version=[2.7.0 (default:9987c746f838, Apr 29 2015, 02:25:11)
[OpenJDK 64-Bit Server VM (Oracle Corporation)]]
2018-10-08 17:25:34.848 [DEBUG] [org.eclipse.smarthome.model.script.Rules] - JSR223: path=[['/opt/openhab2/conf/automation/lib/python', '/opt/openhab2/conf/automation/jython/Lib', '/opt/openhab2/conf/automation/jython/jython-standalone-2.7.0.jar/Lib', '__classpath__', '__pyclasspath__/']]
And please post your start.sh too…
#!/bin/sh
echo
echo Launching the openHAB runtime...
DIRNAME=`dirname "$0"`
export EXTRA_JAVA_OPTS="-Xbootclasspath/a:${DIRNAME}/conf/automation/jython/jython-standalone-2.7.0.jar \
-Dpython.home=${DIRNAME}/conf/automation/jython \
-Dpython.path=${DIRNAME}/conf/automation/lib/python"
exec "${DIRNAME}/runtime/bin/karaf" "${@}"
EDIT:
I’m still curious about these, but I think I know what the issue really is now. I updated to snapshot 1381 and saw something similar when OH was first starting up after updating. I thought it had been resolved, but even JSR223 has startup timing issues, and I think this is what you are seeing. Especially because you are using a Pi.
The way the component scripts and their directory are named, these are the first to load. I had used this script to delay the startup of everything, but you may need to rename the components directory to 100_components. Put this in /automation/jsr223/ and name it something like 000_startup.py
…
import time
from org.slf4j import Logger, LoggerFactory
log = LoggerFactory.getLogger("org.eclipse.smarthome.model.script.Rules")
log.info("JSR223: Startup: Checking for initialized context")
while True:
try:
scriptExtension.importPreset("RuleSupport")
if automationManager != None:
log.info("JSR223: Startup: context initialized... waiting 30s before allowing files to load")
break;
except:
pass
log.info("JSR223: Startup: Context not initialized yet... waiting 10s before checking again")
time.sleep(10)
time.sleep(30)
log.info("JSR223: Startup: Complete")