This is what I'm doing in the wso2server.sh. When I restart, I issue a System.exit(121) command. So the shel will spawn a new Java process once the current one exits. This can be done on Windows too with the ERRORLEVEL variable. So, we are relying on the original process which spawned the java process to spawn a new instance, instead of the dying java process spawning a new java process just before it dies. That solution is not working on certain Windows environments. The exit code based approach is guaranteed to work since we are handing back the control to the original shell that spawned the java process.
Here is the relevant code segment in wso2server.sh START_EXIT_STATUS=121; status=$START_EXIT_STATUS; while [ "$status" = "$START_EXIT_STATUS" ] do sh -c "exec "$JAVACMD" \ -Xbootclasspath/a:"$CARBON_XBOOTCLASSPATH" \ -Xms256m -Xmx512m -XX:MaxPermSize=128m \ $JAVA_OPTS \ -Dimpl.prefix=Carbon \ -Dcom.sun.management.jmxremote \ -classpath "$CARBON_CLASSPATH" \ -Djava.endorsed.dirs="$CARBON_HOME/lib/endorsed":"$JAVA_HOME/jre/lib/endorsed":"$JAVA_HOME/lib/endorsed" \ -Djava.io.tmpdir="$CARBON_HOME/tmp" \ -Dwso2.server.standalone=true \ -Dcarbon.registry.root=/ \ -Dcarbon.xbootclasspath="$CARBON_XBOOTCLASSPATH" \ -Djava.command="$JAVACMD" \ -Dcarbon.home="$CARBON_HOME" \ -Dwso2.transports.xml="$CARBON_HOME/repository/conf/mgt-transports.xml" \ -Djava.util.logging.config.file="$CARBON_HOME/lib/log4j.properties" \ -Dcarbon.config.dir.path="$CARBON_HOME/repository/conf" \ -Dcomponents.repo="$CARBON_HOME/repository/components/plugins" \ -Dcom.atomikos.icatch.file="$CARBON_HOME/lib/transactions.properties" \ -Dcom.atomikos.icatch.hide_init_file_path=true \ org.wso2.carbon.bootstrap.Bootstrap $*" status=$? done On Sat, Apr 16, 2011 at 10:41 AM, Afkham Azeez <az...@wso2.com> wrote: > If you do; > > $ exec ./foo.sh > > You will simply see the following line; > [Process completed] > > and the control does not return to the current shell. > > > On Sat, Apr 16, 2011 at 10:21 AM, Sanjiva Weerawarana <sanj...@wso2.com>wrote: > >> No saying "sh -c .." means you're creating a new shell and then exec'ng in >> there. In that case you might as well just say "java .." (without the exec >> at all). >> >> Doesn't having "exec java" at the end give the return code of the java >> command to the calling shell? That's what's spsed to happen. >> >> Sanjiva. >> >> >> On Sat, Apr 16, 2011 at 9:53 AM, Afkham Azeez <az...@wso2.com> wrote: >> >>> Thanks! >>> >>> sh -c "exec java ..." >>> worked! >>> >>> Earlier the script only had "exec java ..." >>> >>> >>> On Sat, Apr 16, 2011 at 7:15 AM, Sanjiva Weerawarana >>> <sanj...@wso2.com>wrote: >>> >>>> Its good to use exec so that the parent shell process doesn't hang >>>> around. That's common practice for shell scripts which set up a bunch of >>>> stuff and run something else right at the end. >>>> >>>> But that should not be a problem as the process exit status should be >>>> that of the exec'ed command IIRC (new command is run in the same process). >>>> >>>> Here's a small test: >>>> >>>> $ cat /tmp/foo.sh >>>> #!/bin/sh >>>> >>>> exit 79 >>>> $ sh -c "exec /tmp/foo.sh" >>>> $ echo $? >>>> 79 >>>> >>>> Sanjiva. >>>> >>>> On Sat, Apr 16, 2011 at 4:13 AM, Afkham Azeez <az...@wso2.com> wrote: >>>> >>>>> Instead of simply doing; "java ..." we do "exec java ...". Why have we >>>>> used exec here? I'm trying to solve the restart issue using exit codes, >>>>> and >>>>> when exec is used, the process exit code cannot be captured. >>>>> >>>>> -- >>>>> *Afkham Azeez* >>>>> Senior Software Architect & Senior Manager; WSO2, Inc.; >>>>> http://wso2.com, >>>>> * >>>>> * >>>>> *Member; Apache Software Foundation; >>>>> **http://www.apache.org/*<http://www.apache.org/> >>>>> * >>>>> email: **az...@wso2.com* <az...@wso2.com>* cell: +94 77 3320919 >>>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>* >>>>> twitter: >>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >>>>> * >>>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez* >>>>> * >>>>> * >>>>> *Lean . Enterprise . Middleware* >>>>> >>>>> >>>>> _______________________________________________ >>>>> Carbon-dev mailing list >>>>> Carbon-dev@wso2.org >>>>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev >>>>> >>>>> >>>> >>>> >>>> -- >>>> Sanjiva Weerawarana, Ph.D. >>>> Founder, Chairman & CEO; WSO2, Inc.; http://wso2.com/ >>>> email: sanj...@wso2.com; phone: +94 11 763 9614; cell: +94 77 787 6880| +1 >>>> 650 265 8311 >>>> blog: http://sanjiva.weerawarana.org/ >>>> >>>> Lean . Enterprise . Middleware >>>> >>> >>> >>> >>> -- >>> *Afkham Azeez* >>> Senior Software Architect & Senior Manager; WSO2, Inc.; http://wso2.com >>> , >>> * >>> * >>> *Member; Apache Software Foundation; >>> **http://www.apache.org/*<http://www.apache.org/> >>> * >>> email: **az...@wso2.com* <az...@wso2.com>* cell: +94 77 3320919 >>> blog: **http://blog.afkham.org* <http://blog.afkham.org>* >>> twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >>> * >>> linked-in: **http://lk.linkedin.com/in/afkhamazeez* >>> * >>> * >>> *Lean . Enterprise . Middleware* >>> >>> >> >> >> -- >> Sanjiva Weerawarana, Ph.D. >> Founder, Chairman & CEO; WSO2, Inc.; http://wso2.com/ >> email: sanj...@wso2.com; phone: +94 11 763 9614; cell: +94 77 787 6880 | +1 >> 650 265 8311 >> blog: http://sanjiva.weerawarana.org/ >> >> Lean . Enterprise . Middleware >> > > > > -- > *Afkham Azeez* > Senior Software Architect & Senior Manager; WSO2, Inc.; http://wso2.com, > * > * > *Member; Apache Software Foundation; > **http://www.apache.org/*<http://www.apache.org/> > * > email: **az...@wso2.com* <az...@wso2.com>* cell: +94 77 3320919 > blog: **http://blog.afkham.org* <http://blog.afkham.org>* > twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> > * > linked-in: **http://lk.linkedin.com/in/afkhamazeez* > * > * > *Lean . Enterprise . Middleware* > > -- *Afkham Azeez* Senior Software Architect & Senior Manager; WSO2, Inc.; http://wso2.com, * * *Member; Apache Software Foundation; **http://www.apache.org/*<http://www.apache.org/> * email: **az...@wso2.com* <az...@wso2.com>* cell: +94 77 3320919 blog: **http://blog.afkham.org* <http://blog.afkham.org>* twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> * linked-in: **http://lk.linkedin.com/in/afkhamazeez* * * *Lean . Enterprise . Middleware*
_______________________________________________ Carbon-dev mailing list Carbon-dev@wso2.org http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev