Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CentOS 6.7 (and possibly others) incompatibility of the jsvc binary shipped with capsule-daemon #6

Open
rmuchall opened this issue Feb 16, 2016 · 11 comments
Assignees
Labels

Comments

@rmuchall
Copy link

Hi there,

I'm experiencing a compatibility issue with capsule-daemon and CentOS 6.7.
When executing my capsule.jar I receive the following error message:

/home/example/bin/jsvc/linux64-brew/jsvc: /lib64/libc.so.6: version 'GLIBC_2.14' not found (required by /home/server/bin/jsvc/linux64-brew/jsvc)
/home/example/bin/jsvc/linux64-brew/jsvc: /lib64/libc.so.6: version 'GLIBC_2.15' not found (required by /home/example/bin/jsvc/linux64-brew/jsvc)

I believe this is occurring because the jsvc executable that is embedded in capsule-daemon is not compatible with the version of glibc that CentOS 6.7 uses. If this is the case would it be possible to either embed a compatible version of jsvc in capsule-daemon or allow the user to specify an external jsvc executable?

CentOS release 6.7 (Final)
x86_64 GNU/Linux
GLIBC version: 2.12-1.166.el6_7.3

Many thanks for your assistance :)

@circlespainter circlespainter self-assigned this Feb 16, 2016
circlespainter pushed a commit that referenced this issue Feb 16, 2016
@circlespainter
Copy link
Member

I uploaded a new 0.2.0-SNAPSHOT that uses a statically linked binary I built. Can you try it?

@rmuchall
Copy link
Author

Please forgive my ignorance but what is the best method to acquire the 0.2.0-SNAPSHOT?
I'm currently using the Maven Central Repository via Gradle to acquire my dependencies.
Should I build the 0.2.0-SNAPSHOT from source or specify a different repository?

Thanks! :)

@circlespainter
Copy link
Member

No problem. For Gradle just add SonaType shapshots to your repositories:

repositories {
    // ...
    maven {
        url "https://oss.sonatype.org/content/repositories/snapshots/"
    }
}

@rmuchall
Copy link
Author

I've been testing the new 0.2.0-SNAPSHOT build and jsvc no longer complains about GLIBC_2.14 not being found. Jsvc now appears to correctly launch however it later fails with the error message:

Attemtping to load library /opt/jdk1.8.0_74/jre/lib/amd64/server/libjvm.so
Service killed by signal 11

I'm not sure if this is a problem with jsvc (which appears to be running correctly) or my own application "aridmud-1.0-SNAPSHOT". Although I think this is most likely a problem with my application code or server configuration. I will keep testing and keep you updated.
Thank you very much for your help. You are a scholar and a gentleman :)

Full output:

# java -Dcapsule.log=verbose -Dcapsule.daemon.debug=true -Dcapsule.daemon.stdoutFile=/home/mudserver/logs/out.log -Dcapsule.daemon.stderrFile=/home/mudserver/logs/err.log -jar arid
CAPSULE: Jar: /home/mudserver/aridmud-1.0-SNAPSHOT-capsule.jar
CAPSULE: Platform: linux
CAPSULE: Loading caplet: DaemonCapsule
CAPSULE: Applying caplet DaemonCapsule
CAPSULE: Initializing app ID
CAPSULE: Initialized app ID: com.aridmud.AridMudServer
CAPSULE: Launching app com.aridmud.AridMudServer
CAPSULE: Copying daemon native helpers [jsvc/linux64/jsvc, jsvc/macosx-yosemite-brew/jsvc, procrun/prunsrv.exe, procrun/x64/prunsrv.exe] in /home/mudserver/bin
CAPSULE: Creating temp file/dir /home/mudserver/bin
CAPSULE: Successfully copied resource bin/jsvc/linux64/jsvc to /home/mudserver/bin
CAPSULE: Successfully copied resource bin/jsvc/macosx-yosemite-brew/jsvc to /home/mudserver/bin
CAPSULE: Successfully copied resource bin/procrun/prunsrv.exe to /home/mudserver/bin
CAPSULE: Successfully copied resource bin/procrun/x64/prunsrv.exe to /home/mudserver/bin
CAPSULE: WARNING resolve [] was empty
CAPSULE: Cache directory: /root/.capsule
CAPSULE: App cache /root/.capsule/apps/com.aridmud.AridMudServer is up to date.
CAPSULE: WARNING resolve [] was empty
CAPSULE: Using JVM: /opt/jdk1.8.0_74/jre
CAPSULE: /home/mudserver/bin/jsvc/linux64/jsvc -java-home /opt/jdk1.8.0_74/jre -debug -cwd /home/mudserver -outfile /home/mudserver/logs/out.log -errfile /home/mudserver/logs/err.log -pidfile /var/run/com.aridmud.AridMudServer.pid -Dcapsule.daemon.startClass=com.aridmud.AridMudServer -Dcapsule.daemon.startMethod=main -Dcapsule.daemon.stopMethod=stop -Djava.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib:/root/.capsule/apps/com.aridmud.AridMudServer -Dcapsule.app=com.aridmud.AridMudServer -Dcapsule.dir=/root/.capsule/apps/com.aridmud.AridMudServer -Dcapsule.jar=/home/mudserver/aridmud-1.0-SNAPSHOT-capsule.jar -classpath /home/mudserver/aridmud-1.0-SNAPSHOT-capsule.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-media-jaxb-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/aridmud-website-1.0-SNAPSHOT.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-container-servlet-core-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/validation-api-1.1.0.Final.jar:/root/.capsule/apps/com.aridmud.AridMudServer/aridmud-server-1.0-SNAPSHOT.jar:/root/.capsule/apps/com.aridmud.AridMudServer/lombok-1.16.6.jar:/root/.capsule/apps/com.aridmud.AridMudServer/cloning-1.9.2.jar:/root/.capsule/apps/com.aridmud.AridMudServer/commons-lang3-3.4.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-client-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/guava-19.0-rc1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.inject-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/commons-dbutils-1.6.jar:/root/.capsule/apps/com.aridmud.AridMudServer/sqlite-jdbc-3.8.11.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/hk2-utils-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-framework-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-websockets-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-container-grizzly2-servlet-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/gson-2.3.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/commons-daemon-1.0.15.jar:/root/.capsule/apps/com.aridmud.AridMudServer/objenesis-2.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/aopalliance-repackaged-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javassist-3.18.1-GA.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-http-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.servlet-api-3.0.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.inject-1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-http-server-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-container-servlet-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-container-grizzly2-http-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-http-servlet-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-common-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.annotation-api-1.2.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-guava-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/hk2-api-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-server-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/hk2-locator-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.ws.rs-api-2.0.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/osgi-resource-locator-1.0.1.jar co.paralleluniverse.capsule.daemon.DaemonAdapter
+-- DUMPING PARSED COMMAND LINE ARGUMENTS --------------
| Detach:          True
| Show Version:    No
| Show Help:       No
| Check Only:      Disabled
| Stop:            False
| Wait:            0
| Run as service:  No
| Install service: No
| Remove service:  No
| JVM Name:        "null"
| Java Home:       "/opt/jdk1.8.0_74/jre"
| PID File:        "/var/run/com.aridmud.AridMudServer.pid"
| User Name:       "null"
| Extra Options:   8
|   "-Dcapsule.daemon.startClass=com.aridmud.AridMudServer"
|   "-Dcapsule.daemon.startMethod=main"
|   "-Dcapsule.daemon.stopMethod=stop"
|   "-Djava.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib:/root/.capsule/apps/com.aridmud.AridMudServer"
|   "-Dcapsule.app=com.aridmud.AridMudServer"
|   "-Dcapsule.dir=/root/.capsule/apps/com.aridmud.AridMudServer"
|   "-Dcapsule.jar=/home/mudserver/aridmud-1.0-SNAPSHOT-capsule.jar"
|   "-Djava.class.path=/home/mudserver/aridmud-1.0-SNAPSHOT-capsule.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-media-jaxb-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/aridmud-website-1.0-SNAPSHOT.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-container-servlet-core-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/validation-api-1.1.0.Final.jar:/root/.capsule/apps/com.aridmud.AridMudServer/aridmud-server-1.0-SNAPSHOT.jar:/root/.capsule/apps/com.aridmud.AridMudServer/lombok-1.16.6.jar:/root/.capsule/apps/com.aridmud.AridMudServer/cloning-1.9.2.jar:/root/.capsule/apps/com.aridmud.AridMudServer/commons-lang3-3.4.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-client-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/guava-19.0-rc1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.inject-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/commons-dbutils-1.6.jar:/root/.capsule/apps/com.aridmud.AridMudServer/sqlite-jdbc-3.8.11.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/hk2-utils-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-framework-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-websockets-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-container-grizzly2-servlet-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/gson-2.3.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/commons-daemon-1.0.15.jar:/root/.capsule/apps/com.aridmud.AridMudServer/objenesis-2.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/aopalliance-repackaged-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javassist-3.18.1-GA.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-http-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.servlet-api-3.0.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.inject-1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-http-server-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-container-servlet-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-container-grizzly2-http-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-http-servlet-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-common-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.annotation-api-1.2.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-guava-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/hk2-api-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-server-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/hk2-locator-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.ws.rs-api-2.0.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/osgi-resource-locator-1.0.1.jar"
| Class Invoked:   "co.paralleluniverse.capsule.daemon.DaemonAdapter"
| Class Arguments: 0
+-------------------------------------------------------
Attempting to locate Java Home in /opt/jdk1.8.0_74/jre
Attempting to locate VM configuration file /opt/jdk1.8.0_74/jre/jre/lib/jvm.cfg
Attempting to locate VM configuration file /opt/jdk1.8.0_74/jre/lib/jvm.cfg
Attempting to locate VM configuration file /opt/jdk1.8.0_74/jre/jre/lib/amd64/jvm.cfg
Attempting to locate VM configuration file /opt/jdk1.8.0_74/jre/lib/amd64/jvm.cfg
Found VM configuration file at /opt/jdk1.8.0_74/jre/lib/amd64/jvm.cfg
Found VM server definition in configuration
Checking library /opt/jdk1.8.0_74/jre/jre/lib/amd64/server/libjvm.so
Checking library /opt/jdk1.8.0_74/jre/lib/amd64/server/libjvm.so
Found VM client definition in configuration
Checking library /opt/jdk1.8.0_74/jre/jre/lib/amd64/client/libjvm.so
Checking library /opt/jdk1.8.0_74/jre/lib/amd64/client/libjvm.so
Cannot locate library for VM client (skipping)
Java Home located in /opt/jdk1.8.0_74/jre
+-- DUMPING JAVA HOME STRUCTURE ------------------------
| Java Home:       "/opt/jdk1.8.0_74/jre"
| Java VM Config.: "/opt/jdk1.8.0_74/jre/lib/amd64/jvm.cfg"
| Found JVMs:      1
| JVM Name:        "server"
|                  "/opt/jdk1.8.0_74/jre/lib/amd64/server/libjvm.so"
+-------------------------------------------------------
Using default JVM in /opt/jdk1.8.0_74/jre/lib/amd64/server/libjvm.so
Invoking w/ LD_LIBRARY_PATH=/opt/jdk1.8.0_74/jre/lib/amd64/server:/opt/jdk1.8.0_74/jre/lib/amd64
+-- DUMPING PARSED COMMAND LINE ARGUMENTS --------------
| Detach:          True
| Show Version:    No
| Show Help:       No
| Check Only:      Disabled
| Stop:            False
| Wait:            0
| Run as service:  No
| Install service: No
| Remove service:  No
| JVM Name:        "null"
| Java Home:       "/opt/jdk1.8.0_74/jre"
| PID File:        "/var/run/com.aridmud.AridMudServer.pid"
| User Name:       "null"
| Extra Options:   8
|   "-Dcapsule.daemon.startClass=com.aridmud.AridMudServer"
|   "-Dcapsule.daemon.startMethod=main"
|   "-Dcapsule.daemon.stopMethod=stop"
|   "-Djava.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib:/root/.capsule/apps/com.aridmud.AridMudServer"
|   "-Dcapsule.app=com.aridmud.AridMudServer"
|   "-Dcapsule.dir=/root/.capsule/apps/com.aridmud.AridMudServer"
|   "-Dcapsule.jar=/home/mudserver/aridmud-1.0-SNAPSHOT-capsule.jar"
|   "-Djava.class.path=/home/mudserver/aridmud-1.0-SNAPSHOT-capsule.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-media-jaxb-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/aridmud-website-1.0-SNAPSHOT.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-container-servlet-core-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/validation-api-1.1.0.Final.jar:/root/.capsule/apps/com.aridmud.AridMudServer/aridmud-server-1.0-SNAPSHOT.jar:/root/.capsule/apps/com.aridmud.AridMudServer/lombok-1.16.6.jar:/root/.capsule/apps/com.aridmud.AridMudServer/cloning-1.9.2.jar:/root/.capsule/apps/com.aridmud.AridMudServer/commons-lang3-3.4.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-client-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/guava-19.0-rc1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.inject-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/commons-dbutils-1.6.jar:/root/.capsule/apps/com.aridmud.AridMudServer/sqlite-jdbc-3.8.11.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/hk2-utils-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-framework-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-websockets-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-container-grizzly2-servlet-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/gson-2.3.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/commons-daemon-1.0.15.jar:/root/.capsule/apps/com.aridmud.AridMudServer/objenesis-2.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/aopalliance-repackaged-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javassist-3.18.1-GA.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-http-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.servlet-api-3.0.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.inject-1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-http-server-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-container-servlet-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-container-grizzly2-http-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/grizzly-http-servlet-2.3.22.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-common-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.annotation-api-1.2.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-guava-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/hk2-api-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/jersey-server-2.21.jar:/root/.capsule/apps/com.aridmud.AridMudServer/hk2-locator-2.4.0-b31.jar:/root/.capsule/apps/com.aridmud.AridMudServer/javax.ws.rs-api-2.0.1.jar:/root/.capsule/apps/com.aridmud.AridMudServer/osgi-resource-locator-1.0.1.jar"
| Class Invoked:   "co.paralleluniverse.capsule.daemon.DaemonAdapter"
| Class Arguments: 0
+-------------------------------------------------------
Attempting to locate Java Home in /opt/jdk1.8.0_74/jre
Attempting to locate VM configuration file /opt/jdk1.8.0_74/jre/jre/lib/jvm.cfg
Attempting to locate VM configuration file /opt/jdk1.8.0_74/jre/lib/jvm.cfg
Attempting to locate VM configuration file /opt/jdk1.8.0_74/jre/jre/lib/amd64/jvm.cfg
Attempting to locate VM configuration file /opt/jdk1.8.0_74/jre/lib/amd64/jvm.cfg
Found VM configuration file at /opt/jdk1.8.0_74/jre/lib/amd64/jvm.cfg
Found VM server definition in configuration
Checking library /opt/jdk1.8.0_74/jre/jre/lib/amd64/server/libjvm.so
Checking library /opt/jdk1.8.0_74/jre/lib/amd64/server/libjvm.so
Found VM client definition in configuration
Checking library /opt/jdk1.8.0_74/jre/jre/lib/amd64/client/libjvm.so
Checking library /opt/jdk1.8.0_74/jre/lib/amd64/client/libjvm.so
Cannot locate library for VM client (skipping)
Java Home located in /opt/jdk1.8.0_74/jre
+-- DUMPING JAVA HOME STRUCTURE ------------------------
| Java Home:       "/opt/jdk1.8.0_74/jre"
| Java VM Config.: "/opt/jdk1.8.0_74/jre/lib/amd64/jvm.cfg"
| Found JVMs:      1
| JVM Name:        "server"
|                  "/opt/jdk1.8.0_74/jre/lib/amd64/server/libjvm.so"
+-------------------------------------------------------
Running w/ LD_LIBRARY_PATH=/opt/jdk1.8.0_74/jre/lib/amd64/server:/opt/jdk1.8.0_74/jre/lib/amd64
redirecting stdout to /home/mudserver/logs/out.log and stderr to /home/mudserver/logs/err.log
CAPSULE: Cleanup
---- snip ----
Contents of err.log:
Switching umask back to 022 from 077
Using default JVM in /opt/jdk1.8.0_74/jre/lib/amd64/server/libjvm.so
Attemtping to load library /opt/jdk1.8.0_74/jre/lib/amd64/server/libjvm.so
Service killed by signal 11
Waiting 60 s to prevent looping

@circlespainter
Copy link
Member

I've just reproduced the same issue so I don't think it's a problem with your app, rather the static binary solution might not work. I'll have a further look.

circlespainter pushed a commit that referenced this issue Feb 16, 2016
…ded one through the `capsule.daemon.jsvc` property (#6)
@circlespainter
Copy link
Member

I've just published a new 0.2.0-SNAPSHOT on SonaType that will let you specify via -Dcapsule.daemon.jsvc a system-installed jsvc to be used. Let me know if it works for you too.

Thanks, supporting our users is a pleasure.

@rmuchall
Copy link
Author

I compiled a local version of jsvc and tested your new feature '''Dcapsule.daemon.jsvc''.
My application is now running successfully under CentOS 6.7. Thanks! :D

@circlespainter
Copy link
Member

Excellent! I'll leave the issue open as OS (and binary) detection can be improved (and/or possibly a jsvc binary working on more systems can be found/built).

@circlespainter circlespainter changed the title CentOS 6.7 Compatibility (GLIBC_2.14 not found) CentOS 6.7 (and possibly others) incompatibility of the jsvc binary shipped with capsule-daemon Feb 16, 2016
@rmuchall
Copy link
Author

I've noticed something a little strange with the latest 0.2.0-SNAPSHOT.
For some reason my application spawns 2 jsvc processes. Do you know if this is expected behavior?

java -Dcapsule.daemon.jsvc=/usr/local/bin/jsvc -jar aridmud-1.0-SNAPSHOT-capsule.jar
ps aux
root      6416  0.0  0.0   8344   304 ?        Ss   10:44   0:00 jsvc.exec -java-home /opt/jdk1.8.0_74/jre -cwd /home/mudserver -pidfile /var/run/com.aridmud.AridMudServer.pid -Dcapsule.daemon.startClass=com.aridmud.AridMudServer
root      6418  9.1  3.9 4007056 83868 ?       Sl   10:44   0:02 jsvc.exec -java-home /opt/jdk1.8.0_74/jre -cwd /home/mudserver -pidfile /var/run/com.aridmud.AridMudServer.pid -Dcapsule.daemon.startClass=com.aridmud.AridMudServer

@circlespainter
Copy link
Member

Is this happening only with the latest SNAPSHOT? jsvc is expected to use several processes (see "How jsvc works") to manage the JVM app as a daemon.

@rmuchall
Copy link
Author

Unfortunately I only have the latest SNAPSHOT running successfully under Linux and so I'm unable to test any previous versions to compare them. However, from reading the jsvc documentation that you linked it does look like expected behavior.
Thanks :)

EDIT:
This is indeed expected behavior.
"Jsvc uses 3 processes: a launcher process, a controller process and a controlled process."
The 2 threads I'm seeing are the "controller process" and "controlled process"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants