Hi,

On Fri, Oct 29, 2010 at 11:25:56AM +0200, RaSca wrote:
> Hi Guys,
> working with some java batch programs I needed to configure the
> anything resource agent. I found that there's no way to define the
> working directory from where the executable must be launched.
> 
> So I solved my problem patching the resource agent to support the
> "workdir" parameter, by writing this patch:
> 
> I don't know if this is the best solution (any suggestion will be
> appreciated), but for me it worked, so I share it (you can find it
> attached).

Patch with some minor changes applied and pushed.

Cheers,

Dejan

> Bye,
> 
> -- 
> Raoul Scarazzini
> Mia Mamma Usa Linux: Niente รจ impossibile da capire, se lo spieghi bene!
> mobile: +393281776712
> [email protected]
> http://www.miamammausalinux.org

> --- ../heartbeat/anything     2010-07-15 11:26:18.000000000 +0200
> +++ anything  2010-10-29 11:04:44.000000000 +0200
> @@ -27,6 +27,7 @@
>  # OCF instance parameters
>  #       OCF_RESKEY_binfile
>  #       OCF_RESKEY_cmdline_options
> +#    OCF_RESKEY_workdir
>  #    OCF_RESKEY_pidfile
>  #       OCF_RESKEY_logfile
>  #       OCF_RESKEY_errlogfile
> @@ -34,7 +35,7 @@
>  #       OCF_RESKEY_monitor_hook
>  #       OCF_RESKEY_stop_timeout
>  #
> -# This RA starts $binfile with $cmdline_options as $user and writes a 
> $pidfile from that. 
> +# This RA starts $binfile with $cmdline_options as $user in $workdir and 
> writes a $pidfile from that. 
>  # If you want it to, it logs:
>  # - stdout to $logfile, stderr to $errlogfile or 
>  # - stdout and stderr to $logfile
> @@ -74,14 +75,14 @@
>               if [ -n "$logfile" -a -n "$errlogfile" ]
>               then
>                       # We have logfile and errlogfile, so redirect STDOUT 
> und STDERR to different files
> -                     cmd="su - $user -c \"nohup $binfile $cmdline_options >> 
> $logfile 2>> $errlogfile & \"'echo \$!' "
> +                     cmd="su - $user -c \"cd $workdir; nohup $binfile 
> $cmdline_options >> $logfile 2>> $errlogfile & \"'echo \$!' "
>               else if [ -n "$logfile" ]
>                       then
>                               # We only have logfile so redirect STDOUT and 
> STDERR to the same file
> -                             cmd="su - $user -c \"nohup $binfile 
> $cmdline_options >> $logfile 2>&1 & \"'echo \$!' "
> +                             cmd="su - $user -c \"cd $workdir; nohup 
> $binfile $cmdline_options >> $logfile 2>&1 & \"'echo \$!' "
>                       else
>                               # We have neither logfile nor errlogfile, so 
> we're not going to redirect anything
> -                             cmd="su - $user -c \"nohup $binfile 
> $cmdline_options & \"'echo \$!'"
> +                             cmd="su - $user -c \"cd $workdir; nohup 
> $binfile $cmdline_options & \"'echo \$!'"
>                       fi
>               fi
>               ocf_log debug "Starting $process: $cmd"
> @@ -169,6 +170,7 @@
>  process="$OCF_RESOURCE_INSTANCE"
>  binfile="$OCF_RESKEY_binfile"
>  cmdline_options="$OCF_RESKEY_cmdline_options"
> +workdir="$OCF_RESKEY_workdir"
>  pidfile="$OCF_RESKEY_pidfile"
>  [ -z "$pidfile" ] && pidfile=${HA_VARRUN}/anything_${process}.pid
>  logfile="$OCF_RESKEY_logfile"
> @@ -225,6 +227,13 @@
>  <shortdesc lang="en">Command line options</shortdesc>
>  <content type="string" />
>  </parameter>
> +<parameter name="workdir" required="1" unique="1">
> +<longdesc lang="en">
> +The path from where the binfile will be executed.
> +</longdesc>
> +<shortdesc lang="en">Full path name of the executable directory</shortdesc>
> +<content type="string" default=""/>
> +</parameter>
>  <parameter name="pidfile">
>  <longdesc lang="en">
>  File to read/write the PID from/to.

> _______________________________________________
> Linux-HA mailing list
> [email protected]
> http://lists.linux-ha.org/mailman/listinfo/linux-ha
> See also: http://linux-ha.org/ReportingProblems

_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems

Reply via email to