cd $TOMEE_HOME/bin
tar xzvf commons-daemon-native.tar.gz
cd commons-daemon-1.0.7-native-src/unix/
Unix Daemon
Apache TomEE can be run as a daemon using the jsvc tool from the Apache Commons Daemon project.
Source tarballs for jsvc
are included with Tomcat and therefore can be
found in TomEE as well. These need to be compiled before jsvc can be
used.
Building jsvc
First, we’ll need to locate and unpack the
commons-daemon-native.tar.gz
Note that the commons-daemon-1.0.7-native-src
directory may have a
slightly different version number.
Second, we’ll need to build the jsvc
binary. Under a UNIX operating
system you will need:
-
An ANSI-C compliant compiler (GCC is good)
-
GNU Make
-
A Java Platform 2 compliant SDK
You have to specify the JAVA_HOME
of the SDK either with the
--with-java=<dir>
parameter or set the JAVA_HOME
environment to
point to your SDK installation. For example:
./configure --with-java=/usr/java
or
export JAVA_HOME
./configure
If your operating system is supported, configure will go through cleanly, otherwise it will report an error (please send us the details of your OS/JDK, or a patch against the sources). To build the binaries and libraries simply do:
make
This will generate the executable file jsvc
.
Finally, we’ll want to set the execution bits and move the jsvc
binary
chmod 755 jsvc
mv jsvc $TOMEE_HOME/bin
Done!
As one script, the above might look like:
cd $TOMEE_HOME/bin
tar xzvf commons-daemon-native.tar.gz
cd commons-daemon-1.0.7-native-src/unix/
./configure
make
chmod 755 jsvc
mv jsvc ../..
Starting (unix)
sudo "$TOMEE_HOME/bin/jsvc" -cp "$TOMEE_HOME/bin/bootstrap.jar:$TOMEE_HOME/bin/tomcat-juli.jar" \
"-javaagent:$TOMEE_HOME/lib/openejb-javaagent.jar" -outfile "$TOMEE_HOME/logs/catalina.out" \
-errfile "$TOMEE_HOME/logs/catalina.err" org.apache.catalina.startup.Bootstrap
Starting (osx)
For a 64-bit JVM such as OSX Lion
sudo arch -arch x86_64 "$TOMEE_HOME/bin/jsvc" -jvm server -cp "$TOMEE_HOME/bin/bootstrap.jar:$TOMEE_HOME/bin/tomcat-juli.jar" \
"-javaagent:$TOMEE_HOME/lib/openejb-javaagent.jar" -outfile "$TOMEE_HOME/logs/catalina.out" \
-errfile "$TOMEE_HOME/logs/catalina.err" org.apache.catalina.startup.Bootstrap
For a 32-bit JVM
sudo arch -arch i386 "$TOMEE_HOME/bin/jsvc" -jvm server -cp "$TOMEE_HOME/bin/bootstrap.jar:$TOMEE_HOME/bin/tomcat-juli.jar" \
"-javaagent:$TOMEE_HOME/lib/openejb-javaagent.jar" -outfile "$TOMEE_HOME/logs/catalina.out" \
-errfile "$TOMEE_HOME/logs/catalina.err" org.apache.catalina.startup.Bootstrap
Note on formatting
Note that \
at the end of each line is unix syntax to keep everything
effectively as one line and one command. The command is simply too long
to show as one line on a fixed width html page. The \
can be removed
as long as the resulting command is one long line.
Common Issues
Ensure your $TOME_HOME
and $JAVA_HOME
variables are set correctly.
You should see similar output with the following two commands
mingus:~ 01:51:37
$ ls $TOMEE_HOME
LICENSE RELEASE-NOTES bin endorsed logs webapps
NOTICE RUNNING.txt conf lib temp work
mingus:~ 01:51:46
$ ls $JAVA_HOME
bin bundle lib man
The jsvc -debug
option can also show useful information for
troubleshooting:
$TOMEE_HOME/bin/jsvc -debug
Note on OSX, $JAVA_HOME
should be set to
/System/Library/Frameworks/JavaVM.framework/Home
Further documentation
See also the full Apache Commons Daemon documentation for jsvc.