01-31-2017
Let me see if I understand the request correctly: You have a NAS mounted on a number of servers sharing a shell script on that NAS. Only one single server is allowed to run one instance of the script at a given point in time, all others should be locked out during that run. The result is server dependent and should be stored locally on the respective server.
As it is many servers, local lock mecanisms won't work. Unless the OS offers lock mechanisms across all servers, you have to create one on your own.
Reading through your posts, I'm not sure if you differentiate between the lock file and the result file. You need both of them. While you can store the results locally, you should create the lock file some place available to all servers. One example - not being everybody's preferred choice - would be the script's path on the NAS, or e.g. a "lock" directory thereunder. You could use a simple file name, or a "personalized" one as Corona688 proposed, and use Scrutinizer's trap to remove it at script exit - not forgetting for the "normal", healthy script end.
No running scripts should be killed by the mechanism, but the nth instance should quit graciously when it sees another instance running, possibly logging such event when quitting.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
using ps -ef | fgrep "ld_data"
how do i write a script to check that it didn't already run
Thanks (2 Replies)
Discussion started by: Link_02
2 Replies
2. Shell Programming and Scripting
HI,
I have a script which will be running all the time...it is like a trigger.. wakesup every 10 minutes(trigger.sh) executes, and I want to write another script which monitors this script every one hour and if it finds that trigger script is not running it should start it and exit...and here... (9 Replies)
Discussion started by: mgirinath
9 Replies
3. Shell Programming and Scripting
Hi,
I want to run a check platform & application script under ksh (Soaris boxes).
It runs some commands and it take some time.
I want to customize it like that:
- output is too big, hence I want some output of the commands to be redirect
ed in an output file (or maybe two or three) - not... (4 Replies)
Discussion started by: heartwork
4 Replies
4. UNIX for Dummies Questions & Answers
I am looking for the syntax to check which ID is executing script.sh. If the the ID, is not user1 then I want the script to exit and return to command prompt, if it is user1, then I want the script to continue. Any help would be greatly appreciate.
Thank you.
Chris (3 Replies)
Discussion started by: cpolikowsky
3 Replies
5. Shell Programming and Scripting
Hi,
I am a unix newbie. I need to write a script to check wheteher another script is still running. If it is, then sleep for 30m and then check again if the script is running. If the script has stopped running then, I need to come out of the loop.
I am using RHEL 5.2 (2 Replies)
Discussion started by: mathews
2 Replies
6. UNIX for Dummies Questions & Answers
Hey guys, so I wrote a small script that pretty much just takes in two numbers and counts from the first to the second, e.g.
unknown-hacker|544> count.sh 1 3
1
2
3
My problem is I want to make it so that if you input invalid parameters, such as non-numerical characters, more than 2... (2 Replies)
Discussion started by: Duo11
2 Replies
7. Shell Programming and Scripting
Hi,
Can anyone please tell me how to write a shell script to check
whether a process if running or not.... if its still running then wait for sometime and if not then run the next query.
Also, Under my one main script main.sh I have to run 2 scripts simutaneously which take some time to... (2 Replies)
Discussion started by: lovepujain
2 Replies
8. UNIX for Dummies Questions & Answers
Hi All,
I am new to Unix...
Can you please let me know how we can check if a script is running or not on Solaris box? (4 Replies)
Discussion started by: Rahul466
4 Replies
9. Linux
Hello,
i allready search on google und here in the local Forum, but can't found something.
I need a query in php, that check whether a process (script) is running or not. Like this:
php query: /usr/bin/Script01 >> if runnig, then: "Script01 is Online", if not "Script01 is Offline"
I... (2 Replies)
Discussion started by: ProTechEx
2 Replies
10. Shell Programming and Scripting
Happy New Year
Is there a quick way to check to see if a script is already running.
I want to put in a check in the script to exit, if already running.
Currerntly i can only think of doing it the following way.
# ps -ef | grep -i 3_HOUSEKEEPING_FFTVTL_TO_FFTDSSU_DUPLICATION.ksh |... (5 Replies)
Discussion started by: Junes
5 Replies
LEARN ABOUT REDHAT
shlock
SHLOCK(1) General Commands Manual SHLOCK(1)
NAME
shlock - create lock files for use in shell scripts
SYNOPSIS
shlock -p pid -f name [ -b ] [ -u ] [ -c ]
DESCRIPTION
Shlock tries to create a lock file named name and write the process ID pid into it. If the file already exists, shlock will read the
process ID from the file and test to see if the process is currently running. If the process exists, then the file will not be created.
Shlock exits with a zero status if it was able to create the lock file, or non-zero if the file refers to currently-active process.
OPTIONS
-b Process IDs are normally read and written in ASCII. If the ``-b'' flag is used, then they will be written as a binary int. For
compatibility with other systems, the ``-u'' flag is accepted as a synonym for ``-b'' since binary locks are used by many UUCP pack-
ages.
-c If the ``-c'' flag is used, then shlock will not create a lock file, but will instead use the file to see if the lock is held by
another program. If the lock is valid, the program will exit with a non-zero status; if the lock is not valid (i.e., invoking
shlock without the flag would have succeeded), then the program will exit with a zero status.
EXAMPLES
The following example shows how shlock would be used within a shell script:
LOCK=<pathrun in inn.conf>/LOCK.send
trap 'rm -f ${LOCK} ; exit 1' 1 2 3 15
if shlock -p $$ -f ${LOCK} ; then
# Do appropriate work
else
echo Locked by `cat ${LOCK}`
fi
BUGS
shlock does not assumed to be used under a number of lock/unlock environment in a short time. Namely, shlock should be used for an envi-
ronment like daily or hourly based job.
HISTORY
Written by Rich $alz <rsalz@uunet.uu.net> after a description of HDB UUCP locking given by Peter Honeyman. This is revision 1.5.6.1, dated
2002/09/24.
SEE ALSO
inn.conf(5)
SHLOCK(1)