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..
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
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
2. Shell Programming and Scripting
Hi there,
pleas I want this script urgently. how to lock a directory by shell script? (12 Replies)
Discussion started by: joneggk
12 Replies
3. Red Hat
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
4. Shell Programming and Scripting
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
5. UNIX for Dummies Questions & Answers
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
6. UNIX for Advanced & Expert Users
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
7. Shell Programming and Scripting
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
8. UNIX for Dummies Questions & Answers
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
9. Shell Programming and Scripting
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
10. UNIX for Beginners Questions & Answers
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
LEARN ABOUT LINUX
mail-touchlock
lockfile-progs(1) Lockfile programs lockfile-progs(1)
NAME
lockfile-progs - command-line programs to safely lock and unlock files and mailboxes (via liblockfile).
SYNOPSIS
mail-lock [--use-pid] [--retry retry-count]
mail-unlock
mail-touchlock [--oneshot]
lockfile-create [--use-pid] [--retry retry-count] [--lock-name] filename
lockfile-remove [--lock-name] filename
lockfile-touch [--oneshot] [--lock-name] filename
lockfile-check [--use-pid] [--lock-name] filename
DESCRIPTION
Lockfile-progs provides a set a programs that can be used to lock and unlock mailboxes and files safely (via liblockfile):
mail-lock - lock the current user's mailbox
mail-unlock - unlock the current user's mailbox
mail-touchlock - touch the lock on the current user's mailbox
lockfile-create - lock a given file
lockfile-remove - remove the lock on a given file
lockfile-touch - touch the lock on a given file
lockfile-check - check the lock on a given file
By default, the filename argument refers to the name of the file to be locked, and the name of the lockfile will be filename .lock. How-
ever, if the --lock-name argument is specified, then filename will be taken as the name of the lockfile itself.
Each of the mail locking commands attempts to lock /var/spool/mail/<user>, where <user> is the name associated with the effective user ID,
as determined by via geteuid(2).
Once a file is locked, the lock must be touched at least once every five minutes or the lock will be considered stale, and subsequent lock
attempts will succeed. Also see the --use-pid option and the lockfile_create(3) manpage.
The lockfile-check command tests whether or not a valid lock already exists.
OPTIONS
-q, --quiet
Suppress any output. Success or failure will only be indicated by the exit status.
-v, --verbose
Enable diagnostic output.
-l, --lock-name
Do not append .lock to the filename. This option applies to lockfile-create, lockfile-remove, lockfile-touch, or lockfile-check.
-p, --use-pid
Write the current process id (PID) to the lockfile whenever a lockfile is created, and use that pid when checking a lock's validity.
See the lockfile_create(3) manpage for more information. This option applies to lockfile-create, lockfile-remove, lockfile-touch, and
lockfile-check.
-o, --oneshot
Touch the lock and exit immediately. This option applies to lockfile-touch and mail-touchlock. When not provided, these commands will
run forever, touching the lock once every minute until killed.
-r retry-count, --retry retry-count
Try to lock filename retry-count times before giving up. Each attempt will be delayed a bit longer than the last (in 5 second incre-
ments) until reaching a maximum delay of one minute between retries. If retry-count is unspecified, the default is 9 which will give
up after 180 seconds (3 minutes) if all 9 lock attempts fail.
EXAMPLES
Locking a file during a lengthy process:
lockfile-create /some/file
lockfile-touch /some/file &
# Save the PID of the lockfile-touch process
BADGER="$!"
do-something-important-with /some/file
kill "${BADGER}"
lockfile-remove /some/file
EXIT STATUS
0
For lockfile-check this indicates that a valid lock exists, otherwise it just indicates successful program execution.
Not 0
For lockfile-check a non-zero exit status indicates that the specified lock does not exist or is not valid. For other programs it
indicates that some problem was encountered.
SEE ALSO
maillock(3)
touchlock(3)
mailunlock(3)
lockfile_create(3)
lockfile_remove(3)
lockfile_touch(3)
lockfile_check(3)
AUTHOR
Written by Rob Browning <rlb@defaultvalue.org>
0.1.12 2008-02-10 lockfile-progs(1)