[org.nuxeo.launcher.NuxeoLauncher] Sent server start command but could not get process ID.
If you got such a message in the console or in the console.log file, that means the Launcher was not able to confirm the server status, retrieving the process id.
Until Nuxeo 5.6, that warning message can also be due to a JVM start failed (for instance, not enough memory). You can check this by running
nuxeoctl console instead of
Since Nuxeo 5.7 (NXP-11039), the errors detection and associated messages were improved so that warning message only appears when the Java process is effectively started.
That can be a normal behavior on some old Windows versions and on Unix Solaris.
Windows users, if you can issue the two following commands without error in a Shell windows, then the Launcher must be able to manage the server process on your OS:
wmic quit taskkill /?
First, you can start in console mode (in which case, the Launcher won't try to manage the process) in order to manually check if the server can start:
nuxeoctl console. You will have to stop the server issuing
If you can start the server that way, it should also be able to start with
nuxeoctl startbg. The drawback is
nuxeoctl stop won't be able to stop the server.
In case the issue lies in the batch file, you can try to run the Launcher with its Java command. If you issued
nuxeoctl start from a Shell window, then you can copy/paste the command titled "Launcher command". It will be of the form:
java -Dlauncher.java.opts="some JVM options" -Dnuxeo.home=/path/to/nuxeo/ -Dnuxeo.conf=/path/to/nuxeo.conf -jar /path/to/nuxeo-launcher.jar start
You can also try to directly run the server, fully bypassing the Launcher. Look into the
console.log file for a command titled "Server command". You will have to run the Launcher configuration, then the server command. It will look like:
nuxeoctl configure java -cp "the classpath" -Dnuxeo.home=/path/to/nuxeo -Dnuxeo.conf=/path/to/nuxeo.conf -Dnuxeo.log.dir=log -Dnuxeo.data.dir=data -Dnuxeo.tmp.dir=tmp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcatalina.base=/path/to/nuxeo -Dcatalina.home=/path/to/nuxeo org.apache.catalina.startup.Bootstrap start
Then, if you want to understand the failure cause, you can try to manually get that process ID from a Shell window, reproducing the steps used by the Launcher.
console.log for the "regexp" keyword, this is the regular expression used to find the process ID. Something like:
[org.nuxeo.launcher.NuxeoLauncher] regexp: \Q/path/to/nuxeo.conf\E.*\Qorg.apache.catalina.startup.Bootstrap\E pid:null
The command for retrieving the process ID will depend on your OS.
/bin/ps -e -o "pid,args" | grep -E "^\s*([0-9]+)\s+(.*)$" | grep "/path/to/nuxeo.conf.*org.apache.catalina.startup.Bootstrap"
Mac OS X
/bin/ps -e -o "pid,command" | grep -E "^ *([0-9]+) +(.*)$" | grep "/path/to/nuxeo.conf.*org.apache.catalina.startup.Bootstrap"
wmic process get CommmandLine,ProcessId
Look for lines matching the regular expression:
Check if one of those is matching the regular expression found in