Onsdag 09 november 2005 23:35 skrev Roy Souther:
> Off the top of my head this would be a simple bash script that would
> call the app. Could look like this.
> This is my quick idea. I have not tested it. Could use some work.
>
> ===== START BASH SCRIPT =====
> #!/bin/bash
>
> OUR_PID=$$
>
> # Get the basename of the program to run
> APP_NAME=$0
> NANE_LENGTH=${#APP_NAME}
> SHORT_NAME_LENGTH=`expr $NANE_LENGTH - 4`
> CALLED_APP_NAME=`echo "$0" | cut -b -$SHORT_NAME_LENGTH`
>
> # Use a PID lock file to see if it is already running
> LOCK_FILE="$HOME/tmp/${CALLED_APP_NAME}.lock
> LOCK_PID=0
> if [ -f $LOCK_FILE ]; then
> LOCK_PID=`< $LOCK_FILE`
> fi
>
> if [ $LOCK_PID -gt 0 ]; then
> # It was run before, we have a PID but it could be an old PID
> # See if that program is still running by this user, match the PID,
> the program name and the user
> STILL_RUNNING=`ps -p $LOCK_PID -u | grep ^$USER | grep
> $CALLED_APP_NAME`
>
> # Something returned means it is still running
> if [ ! "$STILL_RUNNING" = "" ]; then
> exit 0
> fi
>
> # Nothing returned means it is an old PID
> fi
>
> # Put our PID into the file to stop this script from running twice
> # This is fast because the program we call could be slow to start up
> echo -n "$OUR_PID" > $LOCK_FILE
>
> # Call the app and give it any passed argument, get the PID and put it
> into the lock file
> $CALLED_APP_NAME $@ &
> CALLED_PID=$!
> echo -n "$CALLED_PID" > $LOCK_FILE
> exit 0
> ===== START BASH SCRIPT =====
>
> Then use this script as a wrapper for the program. If your program is
> mozilla in /usr/bin/mozilla make the bash script /usr/bin/mozilla.bsh
>
> If you have a lot of programs you want to wrap use sym links. Save the
> script as /usr/bin/RunOnlyOnce.bsh
> ln -s /usr/bin/RunOnlyOnce.bsh /usr/bin/mozilla.bsh
> ln -s /usr/bin/RunOnlyOnce.bsh /usr/bin/gedit.bsh
> ln -s /usr/bin/RunOnlyOnce.bsh /usr/bin/kmail.bsh
> ln -s /usr/bin/RunOnlyOnce.bsh /usr/bin/someprogram.bsh
>
> On Wed, 2005-11-09 at 03:24 -0800, Jhommer Oblego wrote:
> > Hello,
> > Just want to ask if there is a program or script that
> > limits the applications to only runonce specially on
> > clicking on desktop icon?
> >
> > I having problem on users doing multiple click on
> > desktop icon or program menu and results to multiple
> > program execution which slowdown the server and
> > sometimes hang the server.
> >
> > do you have any suggestions on how to address this problem?
>
> Royce Souther
> www.SiliconTao.com
> Let Open Source help your business move beyond.
>
Hi list and Royce,
- please forgive me, this is somewhat off topic...
1st., thanks for an excellent script. It will come in handy in many cases.
My question: I can't get a construct (bash) like the one you use to work. I
try
SOMEVAR=`groupadd g_$1`
if [ "$SOMEVAR" = "" ]; then
echo Group created
exit 0
else
echo Some error occurred
exit 1
fi
My problems is that the variable SOMEVAR remains empty no matter what I do.
What am I missing?
Med venlig hilsen/Best regards
Verner Kjærsgaard
-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php
_____________________________________________________________________
Ltsp-discuss mailing list. To un-subscribe, or change prefs, goto:
https://lists.sourceforge.net/lists/listinfo/ltsp-discuss
For additional LTSP help, try #ltsp channel on irc.freenode.net