This solution works well on Ubuntu 10.10 as well.

On Sat, Apr 16, 2011 at 2:54 PM, Afkham Azeez <[email protected]> wrote:

> Please try this distribution out and let me know [1]... I have tested on
> Mac and Windows and works fine. If everything goes well, I will commit this
> change today.
>
>
> 1.
> https://docs.google.com/a/wso2.com/leaf?id=0B3W7aoJmJW4wYWRmZDY4NDktZWI3ZC00ZWFmLTk2ZTQtYzhiZGU1YTM5OTMz&hl=en
>
>
> On Sat, Apr 16, 2011 at 11:26 AM, Sanjiva Weerawarana <[email protected]>wrote:
>
>> Ah ok now I understood what you want to do .. yep sounds good.
>>
>> Only change you could do is instead of saying "sh -c 'exec java ...'" you
>> could simply say "java ...". Essentially you're creating a shell and
>> immediately running one command so might as well run that command directly.
>>
>> Sanjiva.
>>
>>
>> On Sat, Apr 16, 2011 at 10:53 AM, Afkham Azeez <[email protected]> wrote:
>>
>>> 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 <[email protected]> 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 <[email protected]
>>>> > 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 <[email protected]> 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 <
>>>>>> [email protected]> 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 <[email protected]>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: **[email protected]* <[email protected]>* 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
>>>>>>>> [email protected]
>>>>>>>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Sanjiva Weerawarana, Ph.D.
>>>>>>> Founder, Chairman & CEO; WSO2, Inc.;  http://wso2.com/
>>>>>>> email: [email protected]; 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: **[email protected]* <[email protected]>* 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: [email protected]; 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: **[email protected]* <[email protected]>* 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: **[email protected]* <[email protected]>* 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: [email protected]; 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: **[email protected]* <[email protected]>* 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: **[email protected]* <[email protected]>* 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
[email protected]
http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev

Reply via email to