I’d like to run a few workflows from a headless machine. Knime analytics platform works well in batch mode (cf. https://www.knime.com/faq#q12) from my computer (running Ubuntu).
However, I can’t run knime from Ubuntu Server (without a graphical environment).
Here’s my error message:
knime -nosplash -reset -nosave --launcher.suppressErrors -consoleLog -application="org.knime.product.KNIME_BATCH_APPLICATION"
libX11.so.6: cannot open shared object file: No such file or directory
Knime:
The Knime executable launcher was unable to locate its companion shared library.
NB: Knime 4.7 and 5.1 output the same error
When I install the missing library, a new library has to be installed and so on. Looks like I’m going to deploy a graphical environment step by step (not my purpose).
Can you tell me how to run Knime Analytics Platform on a headless machine, please?
Please note that I’m not a Java developer. I guess I’d have to modify the knime.ini file, but I can’t figure out exactly how.
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
at org.eclipse.swt.SWT.error(SWT.java:4944)
at org.eclipse.swt.widgets.Display.createDisplay(Display.java:1154)
at org.eclipse.swt.widgets.Display.create(Display.java:1078)
at org.eclipse.swt.graphics.Device.<init>(Device.java:168)
at org.eclipse.swt.widgets.Display.<init>(Display.java:630)
at org.eclipse.swt.widgets.Display.<init>(Display.java:621)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:742)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:168)
at org.knime.product.rcp.KNIMEApplication.createDisplay(KNIMEApplication.java:270)
at org.knime.product.rcp.KNIMEApplication.start(KNIMEApplication.java:122)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
at org.eclipse.equinox.launcher.Main.main(Main.java:1440)
I still don’t know how to explain to knime (or Eclipse?) I don’t want any display…
I’m still not giving up the fight and I’ve tried something else: using a virtual machine (instead of a Docker container).
The result is no better: I get the same error (libX11.so.6 is missing) and then (after installing the dependencies): org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed].
The problem seems to stem from the knime and/or Eclipse configuration…