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);
    
...

I'm running on Mac OS X 10.7.4 with Java 1.6.0_35.

Any help would be appreciated. *8-)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to