Am 07.05.2012 um 20:52 schrieb Sean P. DeNigris:

> How would I run '/usr/bin/java -jar "/path/to/jenkins.war" &' with OSProcess?
> Specifically I want to know the process number of the java child process.
> 
> I unsuccessfully tried:
> * PipeableOSProcess command: '/usr/bin/java -jar "/path/to/jenkins.war" &',
> which successfully launches java, but I don't know its pid because the
> returned process is the completed parent "sh" that launched it
> * PipeableOSProcess command: '/usr/bin/java -jar "/path/to/jenkins.war"'
> (without ampersand), which also launches successfully, and leaves the parent
> "sh" process running as well (not as clean), but I still don't know the java
> pid
> 
If this is all shell handling then you should be able to exec your command. An 

exec /usr/bin/java -jar "/path/to/jenkins.war"

(if it works) will replace the shell with the execution of the java process. 
Therefor the pid is the pid of the java process. But Yannis approach looks a 
lot better from here :)

Norbert

> I then succeeded with:
>  p := PipeableOSProcess command: '/usr/bin/java -jar "/path/to/jenkins.war"
> & { echo $! ; }'.
>  p output lines first.
> 
> But this seems convoluted and I'm assuming there must be a simpler way.
> 
> What is the best way to do this?
> I.e.:
> * launch a long running child process
> * without keeping the sh process open
> * accessing the pid of the child
> 
> Thanks,
> Sean
> 
> --
> View this message in context: 
> http://forum.world.st/Running-in-background-with-OSProcess-tp4615534.html
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
> 


Reply via email to