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

Reply via email to