|
From: <nic...@uk...> - 2004-12-07 10:54:56
|
you probably need to dos2unix the file....
-Nick
Internet
ste...@ce...@lists.sourceforge.net - 06/12/2004 15:40
Please respond to wra...@li...
Sent by: wra...@li...
To: wrapper-user
cc:
Subject: Re: [SPAM] - Re: [SPAM] - Re: [Wrapper-user] PIDFILE +
wrapper.working.dir - Bayesian Filter detected spam - Found word(s)
list error remove in the Text body.
Leif ,
Sorry for all those posts but when i try to launch the daemon with your
new script
the shell complain about : "bad interpreter ........."
So i can't test it , i'm waiting to see what you think about my last post
Big thanks
St=E9phane RIFF wrote:
> Leif ,
>
> I don't understand your last post: if the shell script use path like :
> PIDDIR : /usr/local/myapp/
> (This is what i've done to make my wrapper work), if you change the
> location or OS you have to change
> your script variables. Or i make a directory tree that can be move
> anywhere with relative path...
>
> Maybe i misunderstound so i gonna try your script to see what happen.
>
> Thanks for your answers
> Bye
>
>
>
> Leif Mortenson wrote:
>
>> Stephane,
>> Ok, this was a bug in the shell script. The pid file is created
>> after the working dir is
>> changed but that is not taken into account by the shell script.
>>
>> I have fixed this for the next release. The shell script will now
>> always use fully qualified
>> paths to avoid this issue. I have attached the new shell script.
>> It should work for old
>> versions of the Wrapper.
>>
>> Let me know how it works for you.
>>
>> Cheers,
>> Leif
>>
>> St=E9phane RIFF wrote:
>>
>>> The user is the same (sure).
>>>
>>> The directory tree is :
>>> serviceroot
>>> |
>>> ---bin
>>> | |
>>> | ---wrapper
>>> | |
>>> | ---sh.script
>>> |
>>> ---conf
>>> | |
>>> | ---wrapper.conf
>>> |
>>> ---lib
>>> |
>>> ---logs
>>>
>>> In the wrapper.conf : wrapper.working.dir=3D"../"
>>> In sh.script : PIDDIR=3D"."
>>>
>>> When i start the service (with user "steff"), the MYAPP.pid file is
>>> in the "serviceroot" directory.
>>> When i want to stop (with user "steff"), the sh.script complains
>>> that "service not running". but
>>> if i print $PIDFILE in the sh.script, it display : "./MYAPP.pid" :
>>> seems good if the working directory
>>> is really set to "serviceroot"
>>>
>>> Maybe i missunderstood about working dir but if someone can points
>>> me to the right solution.....
>>> Thanks to answerers
>>>
>>> Leif Mortenson wrote:
>>>
>>>> Stephane,
>>>> My first guess here is a permission problem. Are you starting
>>>> the wrapper as the same
>>>> user that you are later attempting stop it with? I may have some
>>>> problems there but I have
>>>> not heard of any to date. Give me a little more info and I'll go
>>>> back and look over the
>>>> script some more.
>>>>
>>>> Cheers,
>>>> Leif
>>>>
>>>> St=E9phane RIFF wrote:
>>>>
>>>>> I have problem with the pid file :
>>>>> in sh.script.in i have PIDDIR=3D".", the 'start ' command seems to
>>>>> place pidfile in the right location.
>>>>> but when i try to launch a 'stop' command the script tell me that
>>>>> the daemon isn't running .
>>>>>
>>>>> I also echo some variable and the $PIDFILE is : "./MYAPPNAME.pid" so
>>>>> i don't understand why the line : "if [ -f $PIDFILE ]" is not true
>>>>>
>>>>> I don't know if i'm understandable but i suspect there a problem
>>>>> with the sh.script.in and the wrapper.working.dir.
>>>>>
>>>>> any hints are welcome
>>>>> Thanks
>>>>
>>>>
>>>>
>>
>> ------------------------------------------------------------------------
>>
>> #! /bin/sh
>>
>> #
>> # Copyright (c) 1999, 2004 Tanuki Software
>> #
>> # Java Service Wrapper sh script. Suitable for starting and stopping
>> # wrapped Java applications on UNIX platforms.
>> #
>>
>>
#--------------------------------------------------------------------------=
---
>>
>> # These settings can be modified to fit the needs of your application
>>
>> # Application
>> APP_NAME=3D"@app.name@"
>> APP_LONG_NAME=3D"@app.long.name@"
>>
>> # Wrapper
>> WRAPPER_CMD=3D"./wrapper"
>> WRAPPER_CONF=3D"../conf/wrapper.conf"
>>
>> # Priority at which to run the wrapper. See "man nice" for valid
>> priorities.
>> # nice is only used if a priority is specified.
>> PRIORITY=3D
>>
>> # Location of the pid file.
>> PIDDIR=3D"."
>>
>> # If uncommented, causes the Wrapper to be shutdown using an anchor
>> file.
>> # When launched with the 'start' command, it will also ignore all
>> INT and
>> # TERM signals.
>> #IGNORE_SIGNALS=3Dtrue
>>
>> # If specified, the Wrapper will be run as the specified user when
>> the 'start'
>> # command is passed to this script. When running with the 'console'
>> command
>> # the current user will be used.
>> # IMPORTANT - Make sure that the user has the required privileges to
>> write
>> # the PID file and wrapper.log files. Failure to be able to write
>> the log
>> # file will cause the Wrapper to exit without any way to write out
>> an error
>> # message.
>> # NOTE - This will set the user which is used to run the Wrapper as
>> well as
>> # the JVM and is not useful in situations where a privileged
>> resource or
>> # port needs to be allocated prior to the user being changed.
>> #RUN_AS_USER=3D
>>
>> # The following two lines are used by the chkconfig command. Change
>> as is
>> # appropriate for your application. They should remain commented.
>> # chkconfig: 2345 20 80
>> # description: @app.long.name@
>>
>> # Do not modify anything beyond this point
>>
#--------------------------------------------------------------------------=
---
>>
>>
>> # Get the fully qualified path to the script
>> case $0 in
>> /*)
>> SCRIPT=3D"$0"
>> ;;
>> *)
>> PWD=3D`pwd`
>> SCRIPT=3D"$PWD/$0"
>> ;;
>> esac
>>
>> # Change spaces to ":" so the tokens can be parsed.
>> SCRIPT=3D`echo $SCRIPT | sed -e 's; ;:;g'`
>> # Get the real path to this script, resolving any symbolic links
>> TOKENS=3D`echo $SCRIPT | sed -e 's;/; ;g'`
>> REALPATH=3D
>> for C in $TOKENS; do
>> REALPATH=3D"$REALPATH/$C"
>> while [ -h "$REALPATH" ] ; do
>> LS=3D"`ls -ld "$REALPATH"`"
>> LINK=3D"`expr "$LS" : '.*-> \(.*\)$'`"
>> if expr "$LINK" : '/.*' > /dev/null; then
>> REALPATH=3D"$LINK"
>> else
>> REALPATH=3D"`dirname "$REALPATH"`""/$LINK"
>> fi
>> done
>> done
>> # Change ":" chars back to spaces.
>> REALPATH=3D`echo $REALPATH | sed -e 's;:; ;g'`
>>
>> # Change the current directory to the location of the script
>> cd "`dirname "$REALPATH"`"
>> REALDIR=3D`pwd`
>>
>> # If the PIDDIR is relative, set its value relative to the full
>> REALPATH to avoid problems if
>> # the working directory is later changed.
>> FIRST_CHAR=3D`echo $PIDDIR | cut -c1,1`
>> if [ "$FIRST_CHAR" !=3D "/" ]
>> then
>> PIDDIR=3D$REALDIR/$PIDDIR
>> fi
>> # Same test for WRAPPER_CONF
>> FIRST_CHAR=3D`echo $WRAPPER_CONF | cut -c1,1`
>> if [ "$FIRST_CHAR" !=3D "/" ]
>> then
>> WRAPPER_CONF=3D$REALDIR/$WRAPPER_CONF
>> fi
>>
>> # Process ID
>> ANCHORFILE=3D"$PIDDIR/$APP_NAME.anchor"
>> PIDFILE=3D"$PIDDIR/$APP_NAME.pid"
>> pid=3D""
>>
>> # Resolve the location of the 'ps' command
>> PSEXE=3D"/usr/bin/ps"
>> if [ ! -x $PSEXE ]
>> then
>> PSEXE=3D"/bin/ps"
>> if [ ! -x $PSEXE ]
>> then
>> echo "Unable to locate 'ps'."
>> echo "Please report this message along with the location of
>> the command on your system."
>> exit 1
>> fi
>> fi
>>
>> # Build the nice clause
>> if [ "X$PRIORITY" =3D "X" ]
>> then
>> CMDNICE=3D""
>> else
>> CMDNICE=3D"nice -$PRIORITY"
>> fi
>>
>> # Check the configured user
>> if [ "X$RUN_AS_USER" !=3D "X" ]
>> then
>> # Resolve the location of the 'id' command
>> IDEXE=3D"/usr/xpg4/bin/id"
>> if [ ! -x $IDEXE ]
>> then
>> IDEXE=3D"/usr/bin/id"
>> if [ ! -x $IDEXE ]
>> then
>> echo "Unable to locate 'id'."
>> echo "Please report this message along with the location
>> of the command on your system."
>> exit 1
>> fi
>> fi
>>
>> if [ "`$IDEXE -u -n`" =3D "$RUN_AS_USER" ]
>> then
>> # Already running as the configured user. Avoid password
>> prompts by not calling su.
>> RUN_AS_USER=3D""
>> fi
>> fi
>>
>> getpid() {
>> if [ -f $PIDFILE ]
>> then
>> if [ -r $PIDFILE ]
>> then
>> pid=3D`cat $PIDFILE`
>> if [ "X$pid" !=3D "X" ]
>> then
>> # Verify that a process with this pid is still running.
>> pid=3D`$PSEXE -p $pid | grep $pid | grep -v grep | awk
>> '{print $1}' | tail -1`
>> if [ "X$pid" =3D "X" ]
>> then
>> # This is a stale pid file.
>> rm -f $PIDFILE
>> echo "Removed stale pid file: $PIDFILE"
>> fi
>> fi
>> else
>> echo "Cannot read $PIDFILE."
>> exit 1
>> fi
>> fi
>> }
>>
>> testpid() {
>> pid=3D`$PSEXE -p $pid | grep $pid | grep -v grep | awk '{print $1}'
>> | tail -1`
>> if [ "X$pid" =3D "X" ]
>> then
>> # Process is gone so remove the pid file.
>> rm -f $PIDFILE
>> fi
>> }
>>
>> console() {
>> echo "Running $APP_LONG_NAME..."
>> getpid
>> if [ "X$pid" =3D "X" ]
>> then
>> if [ "X$IGNORE_SIGNALS" =3D "X" ]
>> then
>> exec $CMDNICE $WRAPPER_CMD $WRAPPER_CONF
>> wrapper.pidfile=3D$PIDFILE
>> else
>> exec $CMDNICE $WRAPPER_CMD $WRAPPER_CONF
>> wrapper.pidfile=3D$PIDFILE wrapper.anchorfile=3D$ANCHORFILE
>> fi
>> else
>> echo "$APP_LONG_NAME is already running."
>> exit 1
>> fi
>> }
>>
>> start() {
>> echo "Starting $APP_LONG_NAME..."
>> getpid
>> if [ "X$pid" =3D "X" ]
>> then
>> if [ "X$IGNORE_SIGNALS" =3D "X" ]
>> then
>> if [ "X$RUN_AS_USER" =3D "X" ]
>> then
>> exec $CMDNICE $WRAPPER_CMD $WRAPPER_CONF
>> wrapper.pidfile=3D$PIDFILE wrapper.daemonize=3DTRUE
>> else
>> su -m $RUN_AS_USER -c "exec $CMDNICE $WRAPPER_CMD
>> $WRAPPER_CONF wrapper.pidfile=3D$PIDFILE wrapper.daemonize=3DTRUE"
>> fi
>> else
>> if [ "X$RUN_AS_USER" =3D "X" ]
>> then
>> exec $CMDNICE $WRAPPER_CMD $WRAPPER_CONF
>> wrapper.pidfile=3D$PIDFILE wrapper.anchorfile=3D$ANCHORFILE
>> wrapper.ignore_signals=3DTRUE wrapper.daemonize=3DTRUE
>> else
>> su -m $RUN_AS_USER -c "exec $CMDNICE $WRAPPER_CMD
>> $WRAPPER_CONF wrapper.pidfile=3D$PIDFILE wrapper.anchorfile=3D$ANCHORFILE
>> wrapper.ignore_signals=3DTRUE wrapper.daemonize=3DTRUE"
>> fi
>> fi
>> else
>> echo "$APP_LONG_NAME is already running."
>> exit 1
>> fi
>> }
>>
>> stopit() {
>> echo "Stopping $APP_LONG_NAME..."
>> getpid
>> if [ "X$pid" =3D "X" ]
>> then
>> echo "$APP_LONG_NAME was not running."
>> else
>> if [ "X$IGNORE_SIGNALS" =3D "X" ]
>> then
>> # Running so try to stop it.
>> kill $pid
>> if [ $? -ne 0 ]
>> then
>> # An explanation for the failure should have been given
>> echo "Unable to stop $APP_LONG_NAME."
>> exit 1
>> fi
>> else
>> rm -f $ANCHORFILE
>> if [ -f $ANCHORFILE ]
>> then
>> # An explanation for the failure should have been given
>> echo "Unable to stop $APP_LONG_NAME."
>> exit 1
>> fi
>> fi
>>
>> # We can not predict how long it will take for the wrapper to
>> # actually stop as it depends on settings in wrapper.conf.
>> # Loop until it does.
>> savepid=3D$pid
>> CNT=3D0
>> TOTCNT=3D0
>> while [ "X$pid" !=3D "X" ]
>> do
>> # Loop for up to 5 minutes
>> if [ "$TOTCNT" -lt "300" ]
>> then
>> if [ "$CNT" -lt "5" ]
>> then
>> CNT=3D`expr $CNT + 1`
>> else
>> echo "Waiting for $APP_LONG_NAME to exit..."
>> CNT=3D0
>> fi
>> TOTCNT=3D`expr $TOTCNT + 1`
>>
>> sleep 1
>>
>> testpid
>> else
>> pid=3D
>> fi
>> done
>>
>> pid=3D$savepid
>> testpid
>> if [ "X$pid" !=3D "X" ]
>> then
>> echo "Timed out waiting for $APP_LONG_NAME to exit."
>> echo " Attempting a forced exit..."
>> kill -9 $pid
>> fi
>>
>> pid=3D$savepid
>> testpid
>> if [ "X$pid" !=3D "X" ]
>> then
>> echo "Failed to stop $APP_LONG_NAME."
>> exit 1
>> else
>> echo "Stopped $APP_LONG_NAME."
>> fi
>> fi
>> }
>>
>> status() {
>> getpid
>> if [ "X$pid" =3D "X" ]
>> then
>> echo "$APP_LONG_NAME is not running."
>> exit 1
>> else
>> echo "$APP_LONG_NAME is running ($pid)."
>> exit 0
>> fi
>> }
>>
>> dump() {
>> echo "Dumping $APP_LONG_NAME..."
>> getpid
>> if [ "X$pid" =3D "X" ]
>> then
>> echo "$APP_LONG_NAME was not running."
>>
>> else
>> kill -3 $pid
>>
>> if [ $? -ne 0 ]
>> then
>> echo "Failed to dump $APP_LONG_NAME."
>> exit 1
>> else
>> echo "Dumped $APP_LONG_NAME."
>> fi
>> fi
>> }
>>
>> case "$1" in
>>
>> 'console')
>> console
>> ;;
>>
>> 'start')
>> start
>> ;;
>>
>> 'stop')
>> stopit
>> ;;
>>
>> 'restart')
>> stopit
>> start
>> ;;
>>
>> 'status')
>> status
>> ;;
>>
>> 'dump')
>> dump
>> ;;
>>
>> *)
>> echo "Usage: $0 { console | start | stop | restart | status |
>> dump }"
>> exit 1
>> ;;
>> esac
>>
>> exit 0
>>
>>
>
>
>
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real users.
> Discover which products truly live up to the hype. Start reading now.
> http://productguide.itmanagersjournal.com/
> _______________________________________________
> Wrapper-user mailing list
> Wra...@li...
> https://lists.sourceforge.net/lists/listinfo/wrapper-user
>
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Wrapper-user mailing list
Wra...@li...
https://lists.sourceforge.net/lists/listinfo/wrapper-user
This message and any attachments (the "message") is=20
intended solely for the addressees and is confidential.=20
If you receive this message in error, please delete it and=20
immediately notify the sender. Any use not in accord with
its purpose, any dissemination or disclosure, either whole=20
or partial, is prohibited except formal approval. The internet=20
can not guarantee the integrity of this message.=20
BNP PARIBAS (and its subsidiaries) shall (will) not=20
therefore be liable for the message if modified.=20
***************************************************************************=
*******************
BNP Paribas Private Bank London Branch is authorised=20
by CECEI & AMF and is regulated by the Financial Services
Authority for the conduct of its investment business in the
United Kingdom.
BNP Paribas Securities Services London Branch is authorised
by CECEI & AMF and is regulated by the Financial Services
Authority for the conduct of its investment business in the=20
United Kingdom.
=20
BNP Paribas Fund Services UK Limited is authorised and=20
regulated by the Financial Services Authority.
|