Does the rsync command you are trying to run behave the same way if you run it from
the command line? I think I have seen this behavior from rsync before. I think you
might be better off trying a different strategy than calling rsync from the <exec>
task. I have automated a deployment similar to the one you describe, where an ear is
build on one machine and then deployed to another. I would do the following:
1. Build the ear/war.
2. Tar is up with <tar>
3. Scp it to the remote server with <scp>
4. Use <sshexec> to connect to the remote server and do the following:
a. stop the appserver
b. backup the existing ear/war (delete the previous backup first)
c. untar the new ear/war
d. move the new ear/war into place
e. start the appserver
This strategy provides you with the ability to quickly and easily backout the changes
if necessary.
I hope this helps,
-Rob Anderson
-----Original Message-----
From: Basel Ahmed [mailto:[EMAIL PROTECTED]
Sent: Wednesday, January 14, 2004 1:39 PM
To: [EMAIL PROTECTED]
Subject: problem with exec & rsh
Hello,
I have a problem with rsh called through the ant exec directive not
terminating properly.
Synopsis:
I have an ant script that handles building the application ear file on a
build server. Upon
successfully completing the build tasks, it then calls a deploy task which
attempts to install
the ear to a remote server using ant's <exec> directive and the Unix rsh
command.
Problem:
>From all indications, the scripts are called properly and the remote
deploy does in fact
complete successfully, however the rsh process does not terminate.
Furthermore, it looks
like a second rsh process is being spawned by the first one as indicated
by the process id
(the process id for rsh process #2 has a parent process number of rsh
process #1).
My Questions:
1 - Has anyone else experienced this and if so, is there a known
resolution?
2 - What could be resulting in the second rsh process being spawn and
does anyone have
any suggestions on how I can further debug this issue?
3 - Can anyone offer some insight into a better way of doing the same
thing and possibly
in a more robust manner?
Below is the specific task responsible for the remote deploy:
<!--
====================================================================== -->
<!-- Target Name: remotedeploy -->
<!--
====================================================================== -->
<target name="remotedeploy"
description="Deploy EAR package"
depends="transfer" >
<echo message="Deploying fedad${build.name}.ear copied to:
${deploy.to.server} " />
<exec executable="/usr/bin/rsh">
<arg line="${deploy.to.server} -l fsgapp "scripts/deploy.sh
fedad${build.name}.ear"" />
</exec>
<exec executable="bin/deploy_notify.sh">
<arg line="fedad${build.name}.ear ${deploy.to.server}" />
</exec>
</target>
Thanks in advance!
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]