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 <az...@wso2.com> 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 <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*
>
>


-- 
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
_______________________________________________
Carbon-dev mailing list
Carbon-dev@wso2.org
http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev

Reply via email to