jpmsilva / jsystemd Goto Github PK
View Code? Open in Web Editor NEWJava integration library for systemd services
License: Apache License 2.0
Java integration library for systemd services
License: Apache License 2.0
If use Spring Reactive (Netty, not Tomcat), it wall throw a java.lang.ClassNotFoundException: jakarta.servlet.ServletContextListener
below
2023-10-12 13:04:35.360 ERROR [main] org.springframework.boot.SpringApplication.reportFailure(824) - Application run failed
java.lang.IllegalStateException: Error processing condition on org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration.endpointOperationParameterMapper
at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:60) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:108) ~[spring-context-6.0.11.jar!/:6.0.11]
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod(ConfigurationClassBeanDefinitionReader.java:183) ~[spring-context-6.0.11.jar!/:6.0.11]
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:144) ~[spring-context-6.0.11.jar!/:6.0.11]
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:120) ~[spring-context-6.0.11.jar!/:6.0.11]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:427) ~[spring-context-6.0.11.jar!/:6.0.11]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:287) ~[spring-context-6.0.11.jar!/:6.0.11]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:344) ~[spring-context-6.0.11.jar!/:6.0.11]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:115) ~[spring-context-6.0.11.jar!/:6.0.11]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:771) ~[spring-context-6.0.11.jar!/:6.0.11]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:589) ~[spring-context-6.0.11.jar!/:6.0.11]
at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) ~[spring-boot-3.1.3.jar!/:3.1.3]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) [spring-boot-3.1.3.jar!/:3.1.3]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:436) [spring-boot-3.1.3.jar!/:3.1.3]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:312) [spring-boot-3.1.3.jar!/:3.1.3]
at org.inori.wrapper.questdbserver.QuestdbServerApplication.main(QuestdbServerApplication.java:42) [classes!/:1.3]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) [questdb-server.jar:1.3]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:95) [questdb-server.jar:1.3]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) [questdb-server.jar:1.3]
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) [questdb-server.jar:1.3]
Caused by: java.lang.IllegalStateException: Failed to introspect Class [com.github.jpmsilva.jsystemd.SystemdAutoConfiguration] from ClassLoader [org.springframework.boot.loader.LaunchedURLClassLoader@15aeb7ab]
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:483) ~[spring-core-6.0.11.jar!/:6.0.11]
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:360) ~[spring-core-6.0.11.jar!/:6.0.11]
at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:417) ~[spring-core-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.lambda$getTypeForFactoryMethod$1(AbstractAutowireCapableBeanFactory.java:748) ~[spring-beans-6.0.11.jar!/:6.0.11]
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) ~[?:?]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:747) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:680) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:651) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1632) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:560) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.collectBeanNamesForType(OnBeanCondition.java:246) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:239) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:229) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchingBeans(OnBeanCondition.java:182) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchOutcome(OnBeanCondition.java:157) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
... 23 more
Caused by: java.lang.NoClassDefFoundError: jakarta/servlet/ServletContextListener
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[?:?]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:524) ~[?:?]
at java.net.URLClassLoader$1.run(URLClassLoader.java:427) ~[?:?]
at java.net.URLClassLoader$1.run(URLClassLoader.java:421) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:712) ~[?:?]
at java.net.URLClassLoader.findClass(URLClassLoader.java:420) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:587) ~[?:?]
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:149) ~[questdb-server.jar:1.3]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465) ~[spring-core-6.0.11.jar!/:6.0.11]
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:360) ~[spring-core-6.0.11.jar!/:6.0.11]
at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:417) ~[spring-core-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.lambda$getTypeForFactoryMethod$1(AbstractAutowireCapableBeanFactory.java:748) ~[spring-beans-6.0.11.jar!/:6.0.11]
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) ~[?:?]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:747) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:680) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:651) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1632) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:560) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.collectBeanNamesForType(OnBeanCondition.java:246) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:239) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:229) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchingBeans(OnBeanCondition.java:182) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchOutcome(OnBeanCondition.java:157) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
... 23 more
Caused by: java.lang.ClassNotFoundException: jakarta.servlet.ServletContextListener
at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:587) ~[?:?]
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:149) ~[questdb-server.jar:1.3]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[?:?]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:524) ~[?:?]
at java.net.URLClassLoader$1.run(URLClassLoader.java:427) ~[?:?]
at java.net.URLClassLoader$1.run(URLClassLoader.java:421) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:712) ~[?:?]
at java.net.URLClassLoader.findClass(URLClassLoader.java:420) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:587) ~[?:?]
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:149) ~[questdb-server.jar:1.3]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465) ~[spring-core-6.0.11.jar!/:6.0.11]
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:360) ~[spring-core-6.0.11.jar!/:6.0.11]
at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:417) ~[spring-core-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.lambda$getTypeForFactoryMethod$1(AbstractAutowireCapableBeanFactory.java:748) ~[spring-beans-6.0.11.jar!/:6.0.11]
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) ~[?:?]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:747) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:680) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:651) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1632) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:560) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) ~[spring-beans-6.0.11.jar!/:6.0.11]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.collectBeanNamesForType(OnBeanCondition.java:246) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:239) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:229) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchingBeans(OnBeanCondition.java:182) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchOutcome(OnBeanCondition.java:157) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47) ~[spring-boot-autoconfigure-3.1.3.jar!/:3.1.3]
... 23 more
Therefore,the project need to add dependency below
<dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> </dependency>
but, this is not needed by spring reactive.
Hello,
We are using jsystemd spring boot starter for several years and it worked like a charm.
We are planning to migrate several apps to Spring Boot 3, and current release doesn't work.
(Mostly because of removal of spring.factories file)
Is there a plan to release a Spring Boot 3 compatible version ?
Or does other users have a workaround to make it work ?
Thanks !
Best regards,
Nicolas
watchdogPeriod
is not configured on the Systemd instance created by the spring boot starter, and it is not possible to activate.
Ideally no explicit configuration should be needed and the starter should just read WATCHDOG_USEC from the environment.
This link has an example of a service:
https://jpmsilva.github.io/jsystemd-site/versions/1.0.1/howto.html
[Unit]
Description=MyService
Requires=network.target
After=network.target
After=syslog.target
[Service]
Type=notify
WorkingDirectory=/opt/myservice
ExecStart=/opt/jdk1.8.0/bin/java -XX:+ExitOnOutOfMemoryError -Xms256M -Xmx512M -XX:+UseG1GC -jar /opt/myservice/myservice.jar
SuccessExitStatus=143
KillMode=mixed
TimeoutStopSec=10
TimeoutStartSec=30
[Install]
WantedBy=multi-user.target
But the important parameter is not specified, without which nothing worked for me.
Namely this:
NotifyAccess=all
Please correct it in the documentation so that people like me do not waste time searching for the reason why it does not work.
:)
Hi @jpmsilva,
I am from Apache Cassandra project and we evaluate the integration of this library with Cassandra. It is great that this library is Apache 2.0 licensed and it is actively developed. I looked around and this is basically the only library which is Apache 2.0 and it is actively developed.
Casandra 5.1 (current trunk) is supporting Java 11 and Java 17. I see you depend on Java 17 for 3.x releases. I looked into 2.0.1 for that reason but JNA is of version 5.7.0. I think we are using 5.9.0 and we want to update to 5.13.0 sooner or later.
Do you think you could patch 2.0.1 for us and release it as 2.0.2 or similar which would still support Java 11 but it would have updated and aligned JNA with our project?
Regards
Hello,
I am trying to use the version 3.0.0 of jsystemd-spring-boot-starter with springboot 3.0.6 on a ubuntu 20.04.6. But I get an error.
On startup I see the following error message :
[WARN ] 2023-07-13 10:39:34,140 [main] c.g.j.j.SystemdNotify - Could not connect to systemd socket
java.net.SocketException: Protocol wrong type for socket
at sun.nio.ch.UnixDomainSockets.connect0(Native Method) ~[?:?]
at sun.nio.ch.UnixDomainSockets.connect(UnixDomainSockets.java:148) ~[?:?]
at sun.nio.ch.UnixDomainSockets.connect(UnixDomainSockets.java:144) ~[?:?]
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:851) ~[?:?]
at com.github.jpmsilva.jsystemd.SystemdNotify.createSocketChannel(SystemdNotify.java:57) ~[classes/:?]
at com.github.jpmsilva.jsystemd.SystemdNotify.<clinit>(SystemdNotify.java:45) ~[classes/:?]
at com.github.jpmsilva.jsystemd.SystemdUtilities.isUnderSystemd(SystemdUtilities.java:76) ~[classes/:?]
at com.github.jpmsilva.jsystemd.SystemdSpringApplicationRunListener.createSystemd(SystemdSpringApplicationRunListener.java:67) ~[jsystemd-spring-boot-starter-3.0.0.jar:?]
at com.github.jpmsilva.jsystemd.SystemdSpringApplicationRunListener.<init>(SystemdSpringApplicationRunListener.java:46) ~[jsystemd-spring-boot-starter-3.0.0.jar:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
at org.springframework.core.io.support.SpringFactoriesLoader$FactoryInstantiator.instantiate(SpringFactoriesLoader.java:382) ~[spring-core-6.0.8.jar:6.0.8]
at org.springframework.core.io.support.SpringFactoriesLoader.instantiateFactJulory(SpringFactoriesLoader.java:228) ~[spring-core-6.0.8.jar:6.0.8]
at org.springframework.core.io.support.SpringFactoriesLoader.load(SpringFactoriesLoader.java:206) ~[spring-core-6.0.8.jar:6.0.8]
at org.springframework.core.io.support.SpringFactoriesLoader.load(SpringFactoriesLoader.java:160) ~[spring-core-6.0.8.jar:6.0.8]
at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:461) ~[spring-boot-3.0.6.jar:3.0.6]
at org.springframework.boot.SpringApplication.getRunListeners(SpringApplication.java:445) ~[spring-boot-3.0.6.jar:3.0.6]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:301) ~[spring-boot-3.0.6.jar:3.0.6]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1304) ~[spring-boot-3.0.6.jar:3.0.6]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1293) ~[spring-boot-3.0.6.jar:3.0.6]
The .service files goes as follow :
[Unit]
Description=my-springboot3-service Spring Boot Application
[Service]
#Type=simple
Type=notify
User=my-springboot3-service
Environment="LOADER_HOME=/opt/my-springboot3-service"
Environment="LOADER_SYSTEM=true"
WorkingDirectory=/srv/my-springboot3-service
ExecStart=/usr/bin/java [irrelevant JVM args removed fo brevity] org.springframework.boot.loader.PropertiesLauncher --debug
SuccessExitStatus=143
TimeoutStopSec=10
#Restart=on-failure
Restart=no
Restart=no
RestartSec=5
LimitNOFILE=65535
TimeoutStartSec=90
[Install]
WantedBy=multi-user.target
I use to have springboot > 2.4.x service working fine with jsystemd 2.0.1 on the same OS (Ubuntu 20.04.6) with the same .service file but that's the first time I try to work with springboot 3 and jsystemd 3.0.0.
I am not remotely familiar with systemd socket yet I'am currently trying to debug the thing.
I'll keep the issue updated with what I find but if in the mean time anyone has an idea he's most welcome :-D
The java version used is OpenJDK 64-Bit Server VM (build 17.0.7+7-Ubuntu-0ubuntu120.04, mixed mode, sharing)
P.S. don't mind the line numbers in the stack-trace, I added a few log-lines to help me in my debugging process.
Providing a similar function to internal APIs SystemdUtilities.isUnderSystemd() or SystemdNotify.usable() would be helpful for non-Spring/non-Tomcat apps. I am actually running Jetty Embedded but am happy with a plain non-integrated implementation.
I noticed the Systemd.logStatus() method which is helpful, but I can't read the result programmatically.
Other than that, this is a great piece of work, thanks!
https://jpmsilva.github.io/jsystemd-site/versions/3.1.1/status-providers.html has many broken links.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.