Lock for this script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Lock for this script
# 1  
Old 02-18-2008
Lock for this script

Hi,

My requirement is to service a process and below is the script which i wrote for that and works fine, I have kept it in a crontab and running this everyminute, how do I lock this if its already running and i dont want to open if its running and not completed yet.

The crontab need to run for the next minute after it completes running the older one.

#!/bin/ksh

while [ true ]; do

i=$(ps -ef | grep PROCESS_NAME |grep -v grep |wc -l)

if [ "$i" -lt 2 ]

then

echo "`date '+%Y-%m-%d-%H:%M:%S'` WARNING !!! PROCESS IS DOWN"

else

echo "`date '+%Y-%m-%d-%H:%M:%S'` PROCESS IS UP"

fi

done

Help me to keep a lock for this, I am using AIX 5.3
# 2  
Old 02-18-2008
Three options:
Don't run this from crontab but instead use a while loop with a sleep 60 at the end and background it. No chance of it doubleing up on itself then.

Or

Have your script look for 'itself' in the process table before doing anything, if it's finds itself there already, exit. You've already written the code to do this in the script you provided above, just have to duplicate it and change PROCESS_NAME to your script name.

Or

Start the script with this:
Code:
if [ -f /tmp/scriptlockfile ]
then
    exit 0
else
    touch /tmp/scriptlockfile
fi

and end it with:
Code:
rm -f /tmp/scriptlockfile

# 3  
Old 02-19-2008
Yeah, what dragon said.

Personally, I like option 3. There's a million ways ya might get it done, but the three suggestions are probably the basis for most of 'em.

Keep in mind the potential use of the shell variables $! and $$. $! is the PID of the last process run in the background and $$ is the PID of the script itself. You might use the latter to create more-or-less unique lockfile names (time stamp is probably better for that, actually). Still, they may come in useful as your script matures.

Last edited by Lukeadams; 02-19-2008 at 12:28 AM..
# 4  
Old 02-19-2008
look into 'man fuser' - no need for lockfiles or ps-ing.
# 5  
Old 02-19-2008
Hi all,

Will this work if i keep it in my crontab, please see if any syntax error is there.

#!/bin/ksh

while [ true ]; do

for i=$(ps -ef | grep SCRIPT_NAME |grep -v grep |wc -l)

if [ "$i" -lt 1 ]

then

echo "`date '+%Y%m%d|%H%M%S'` Script Already running!!!"

exit 0

while [ true ]; do

i=$(ps -ef | grep PROCESS_NAME |grep -v grep |wc -l)

if [ "$i" -lt 2 ]

then

echo "`date '+%Y%m%d|%H%M%S'` WARNING !!! PROCESS IS DOWN"

else

echo "`date '+%Y%m%d|%H%M%S'` PROCESS IS RUNNING"

fi

done
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Perl script with lock to execute only once in a day

Hi, I am new to perl and have a script to which i want to ensure that no matter how many ever times i execute the script it should execute only once per day. Cronjob is not a safe method as I want to built in capability inside the script. (1 Reply)
Discussion started by: ctrld
1 Replies

2. Shell Programming and Scripting

Script lock functionality

Hi All, My requirement is i have a script A.sh .When a person A runs the script A.sh it should get locked and person B should not run the script. i followed the below code f_script_lock() { process=$1 user=`ps -ef | grep -i "$process" | grep -i 'ksh' | awk '{print $1;}'` if ; then ... (1 Reply)
Discussion started by: mohanalakshmi
1 Replies

3. UNIX for Dummies Questions & Answers

How to Lock the Script?

Hi All, Seeking for your assistance on how to lock the script if it's running? meaning anybody can't run my script while it's running. Please advise, Thanks, (8 Replies)
Discussion started by: nikki1200
8 Replies

4. Shell Programming and Scripting

Lock the 2nd script!

Hi All, newbie here, is it possible to lock my second script? because my 1st script is still running. Ex. 1st run : 1st script.sh --> running..... 2nd run : 1st script.sh --> lock because the script is still running.. i don't have any idea how to do it. Please advise, Thanks,... (1 Reply)
Discussion started by: nikki1200
1 Replies

5. UNIX for Advanced & Expert Users

Testing privileges -lock lockfile /var/lock/subsys/..- Permission denied

Hi all, I have to test some user priviliges. The goal is to be sure that an unauthorized user can't restart some modules (ssh, mysql etc...). I'm trying to automate it with a shell script but in same cases I got the syslog broadcast message. Is there any way to simply get a return code... (3 Replies)
Discussion started by: Dedalus
3 Replies

6. UNIX for Dummies Questions & Answers

How do i lock a ksh shell script?

Hi, I have a ksh shell script that accesses databases to drop and create tables and the script also creates text files. This shell script is accessed thru a java application that i would like to turn multi-user, but the only way that i can do that is if I can figure out a way to lock the shell... (2 Replies)
Discussion started by: ndedhia1
2 Replies

7. Shell Programming and Scripting

Large password lock script

I am trying to create a script that will take a very large, tab delimited file and then lock accounts. File headers look like this id desc server pass sudo lock test Test user server01 67 no no "Test user" is under the desc column Basically if pass column is greater... (5 Replies)
Discussion started by: Gibby13
5 Replies

8. Red Hat

Security Question: Lock after invalid login, Session Lock and Required Minimum Password Length

Hello all, If anyone has time, I have a few questions: How do I do the following in Linux. We are using Red Hat and Oracle Enterprise Linux, which is based on Red Hat too. 1. How to lock the account after a few (like 3) invalid password attempts? 2. How do you lock a screen after 30... (1 Reply)
Discussion started by: nstarz
1 Replies

9. Shell Programming and Scripting

How to write a directory lock shell script?

Hi there, pleas I want this script urgently. how to lock a directory by shell script? (12 Replies)
Discussion started by: joneggk
12 Replies

10. UNIX for Dummies Questions & Answers

how to lock keyboard without using lock command

how can I lock my keyboard while I'm away from the computer without using lock command. What other commands gives me the option to lock keyboard device? thanks (7 Replies)
Discussion started by: dianayun
7 Replies
Login or Register to Ask a Question