Hi Yuusuke-san, On Wed, Jun 30, 2010 at 08:00:18PM +0900, Yuusuke IIDA wrote: > Hi, > > For anything RA, I revised it with some function addition. > > The list of the change is as follows. > * I added the option which could choose whether you used a login shell to > want > to let a command inherit an environment variable of Resource Agent.
OK, I assume that this may be useful at times. Though I'm not very happy with the new parameter name, I couldn't come up with another one. The big difference is, I guess, that the .profile files are sourced. Perhaps to name it just "login_shell"? > * I revised it to handle an escape character in character string set by > cmdline_options such as follows adequately. > --- for example: --- > primitive AAAAA ocf:heartbeat:anything \ > params \ > binfile="XXXXX" \ > cmdline_options="-V -c \"openssl des-ede3 -d -base64 -k 'yy y'\" -i" \ > --- --- Uh, this escaping gives me headache. The line says: +cmdline_options=`... | sed 's/\\\/\\\\\\\/g' | ...` How does the left side expand? Shouldn't that be an even number of backslashes? The right side also has 7 backslashes. > * Strip off the trailing clone marker. > - quotations from the following. > http://hg.clusterlabs.org/pacemaker/stable-1.0/file/94515b3503b5/extra/resources/Dummy#l143 OK. Can you please split the patch in three parts, so that we have unrelated changes in signel patches. Cheers, Dejan > > Best Regards, > Yuusuke IIDA > > -- > ---------------------------------------- > METRO SYSTEMS CO., LTD > > YuusukeIida > Mail: iiday...@intellilink.co.jp > ---------------------------------------- > --- anything 2010-06-30 19:53:06.000000000 +0900 > +++ ../extra/anything 2010-06-30 19:55:42.000000000 +0900 > @@ -74,14 +74,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 $use_login_shell $user -c \"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 $use_login_shell $user -c \"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 $use_login_shell $user -c \"nohup > $binfile $cmdline_options & \"'echo \$!'" > fi > fi > ocf_log debug "Starting $process: $cmd" > @@ -165,15 +165,24 @@ > fi > } > > -# FIXME: Attributes special meaning to the resource id > -process="$OCF_RESOURCE_INSTANCE" > +if [ ${OCF_RESKEY_CRM_meta_globally_unique} = "false" ]; then > + # Strip off the trailing clone marker > + process=`echo ${OCF_RESOURCE_INSTANCE} | sed s/:[0-9][0-9]//` > +else > + process="$OCF_RESOURCE_INSTANCE" > +fi > binfile="$OCF_RESKEY_binfile" > -cmdline_options="$OCF_RESKEY_cmdline_options" > +cmdline_options=`echo "$OCF_RESKEY_cmdline_options" | sed 's/\\\/\\\\\\\/g' > | sed 's/\"/\\\"/g'` > pidfile="$OCF_RESKEY_pidfile" > [ -z "$pidfile" ] && pidfile=${HA_VARRUN}/anything_${process}.pid > logfile="$OCF_RESKEY_logfile" > errlogfile="$OCF_RESKEY_errlogfile" > user="$OCF_RESKEY_user" > +if [ ocf_is_true $OCF_RESKEY_use_login_shell ]; then > + use_login_shell="-" > +else > + use_login_shell="" > +fi > [ -z "$user" ] && user=root > > anything_validate() { > @@ -268,6 +277,13 @@ > <shortdesc lang="en">Seconds to wait after having sent SIGTERM before > sending SIGKILL in stop operation</shortdesc> > <content type="string" default=""/> > </parameter> > +<parameter name="use_login_shell"> > +<longdesc lang="en"> > +It is setting to decide whether you use a login shell in a user carrying out > a command. > +</longdesc> > +<shortdesc lang="en">Setting whether or not I use a login shell</shortdesc> > +<content type="string" default="true"/> > +</parameter> > </parameters> > <actions> > <action name="start" timeout="20s" /> > _______________________________________________________ > Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org > http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev > Home Page: http://linux-ha.org/ _______________________________________________________ Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev Home Page: http://linux-ha.org/