Details
Description
I am attempting to 'fire and forget' a process. Using java ProcessBuilder I can do this as follows:
ProcessBuilder pb = new ProcessBuilder("sh", "-c", "nohup ping -c 20 localhost > /dev/null 2>&1 &");
...
Running using Commons Exec I get the following error:
sh: nohup ping -c 20 localhost > /dev/null 2>&1 &: No such file or directory
The stripped down code is as follows:
...
DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();
PumpStreamHandler psh = new PumpStreamHandler(logHandler);
CommandLine cl = CommandLine.parse("sh");
cl.addArgument("-c");
cl.addArgument("nohup ping -c 20 localhost > /dev/null 2>&1 &");
DefaultExecutor exec = new DefaultExecutor();
mWatchDog = new ExecuteWatchdog(ExecuteWatchdog.INFINITE_TIMEOUT);
exec.setStreamHandler(psh);
exec.setWatchdog(mWatchDog);
exec.execute(cl, resultHandler);
...