Sponsored Content
Top Forums Shell Programming and Scripting Use of flock command for whole script Post 302982597 by RudiC on Friday 30th of September 2016 01:42:02 PM
Old 09-30-2016
If a lock file as proposed by Don Cragun exists, you could also check if the process is still running, e.g. like
Code:
read A PID REST <"$LockFile"
if ! lsof -p$PID >/dev/null; then  rm $LockFile; fi

This User Gave Thanks to RudiC For This Post:
 

7 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

can anyone help with shell script command about searching word with grep command?

i want to search in the current directory all the files that contain one word for example "hello" i want to achieve it with the grep command but not with the grep * (2 Replies)
Discussion started by: aintour
2 Replies

2. Shell Programming and Scripting

Need help! command working ok when executed in command line, but fails when run inside a script!

Hi everyone, when executing this command in unix: echo "WM7 Fatal Alerts:", $(cat query1.txt) > a.csvIt works fine, but running this command in a shell script gives an error saying that there's a syntax error. here is content of my script: tdbsrvr$ vi hc.sh "hc.sh" 22 lines, 509... (4 Replies)
Discussion started by: 4dirk1
4 Replies

3. Shell Programming and Scripting

SH script, variable built command fails, but works at command line

I am working with a sh script on a solaris 9 zone (sol 10 host) that grabs information to build the configuration command line. the variables Build64, SSLopt, CONFIGopt, and CC are populated in the script. the script includes CC=`which gcc` CONFIGopt=' --prefix=/ --exec-prefix=/usr... (8 Replies)
Discussion started by: oly_r
8 Replies

4. UNIX for Advanced & Expert Users

Semaphore - lockfile/flock

Hi, I have a process which can run one instance at a time. Currently we have multiple scripts trying to kickoff this process. I wanted to implement the semaphore mechanism to achieve this. I was going through few examples. The below code seems to be reasonable solution. ... (5 Replies)
Discussion started by: tostay2003
5 Replies

5. Shell Programming and Scripting

Help using Flock (file lock)

Hello, I have been working on using "flock"/file lock to prevent two instances of a bash script from being executed. Below is a simplified version of what I have to illustrate the flock part. It works as it is set up there below however the piece I am trying to figure out is how to get it to... (2 Replies)
Discussion started by: infrared013
2 Replies

6. Shell Programming and Scripting

Flock preventing function to work

Hi i have a script that check pings and i use flock to so the script wont run multipul times : its not the whole script but this is the idea : ( flock -x -w 3 200 || exit 1 /usr/sbin/fping -c$count -i$interval -a $hosts > $FILE1 2>&1 ) 200>/var/lock/.myscript.exclusivelock now i... (4 Replies)
Discussion started by: batchenr
4 Replies

7. Shell Programming and Scripting

Execute ssh command with additional terminal command to any remote user not working script

Hello i am having an issue with bash script and this is the code now=$(cat hosts1.txt | awk '{print $2;}') while read n ;do ssh root@$now 'useradd test1; echo -e "test1\ntest1" | passwd test1 && echo "test1 ALL=(ALL:ALL) ALL" >> /etc/sudoers' When i execute only part with cat, it... (8 Replies)
Discussion started by: tomislav91
8 Replies
FLOCK(3)								 1								  FLOCK(3)

flock - Portable advisory file locking

SYNOPSIS
bool flock (resource $handle, int $operation, [int &$wouldblock]) DESCRIPTION
flock(3) allows you to perform a simple reader/writer model which can be used on virtually every platform (including most Unix derivatives and even Windows). On versions of PHP before 5.3.2, the lock is released also by fclose(3) (which is also called automatically when script finished). PHP supports a portable way of locking complete files in an advisory way (which means all accessing programs have to use the same way of locking or it will not work). By default, this function will block until the requested lock is acquired; this may be controlled with the LOCK_NB option documented below. PARAMETERS
o $handle -A file system pointer resource that is typically created using fopen(3). o $operation -$operation is one of the following: o LOCK_SH to acquire a shared lock (reader). o LOCK_EX to acquire an exclusive lock (writer). o LOCK_UN to release a lock (shared or exclusive). It is also possible to add LOCK_NB as a bitmask to one of the above operations if you don't want flock(3) to block while locking. o $wouldblock - The optional third argument is set to 1 if the lock would block (EWOULDBLOCK errno condition). RETURN VALUES
Returns TRUE on success or FALSE on failure. CHANGELOG
+--------------+---------------------------------------------------+ | Version | | | | | | | Description | | | | +--------------+---------------------------------------------------+ |5.5.22, 5.6.6 | | | | | | | Added support for the $wouldblock parameter on | | | Windows. | | | | | 5.3.2 | | | | | | | The automatic unlocking when the file's resource | | | handle is closed was removed. Unlocking now | | | always has to be done manually. | | | | +--------------+---------------------------------------------------+ EXAMPLES
Example #1 flock(3) example <?php $fp = fopen("/tmp/lock.txt", "r+"); if (flock($fp, LOCK_EX)) { // acquire an exclusive lock ftruncate($fp, 0); // truncate file fwrite($fp, "Write something here "); fflush($fp); // flush output before releasing the lock flock($fp, LOCK_UN); // release the lock } else { echo "Couldn't get the lock!"; } fclose($fp); ?> Example #2 flock(3) using the LOCK_NB option <?php $fp = fopen('/tmp/lock.txt', 'r+'); /* Activate the LOCK_NB option on an LOCK_EX operation */ if(!flock($fp, LOCK_EX | LOCK_NB)) { echo 'Unable to obtain lock'; exit(-1); } /* ... */ fclose($fp); ?> NOTES
Note flock(3) uses mandatory locking instead of advisory locking on Windows. Mandatory locking is also supported on Linux and System V based operating systems via the usual mechanism supported by the fcntl() system call: that is, if the file in question has the set- gid permission bit set and the group execution bit cleared. On Linux, the file system will also need to be mounted with the mand option for this to work. Note Because flock(3) requires a file pointer, you may have to use a special lock file to protect access to a file that you intend to truncate by opening it in write mode (with a "w" or "w+" argument to fopen(3)). Note May only be used on file pointers returned by fopen(3) for local files, or file pointers pointing to userspace streams that imple- ment the streamWrapper.stream_lock(3) method. Warning Assigning another value to $handle argument in subsequent code will release the lock. Warning On some operating systems flock(3) is implemented at the process level. When using a multithreaded server API like ISAPI you may not be able to rely on flock(3) to protect files against other PHP scripts running in parallel threads of the same server instance! flock(3) is not supported on antiquated filesystems like FAT and its derivates and will therefore always return FALSE under this environments (this is especially true for Windows 98 users). PHP Documentation Group FLOCK(3)
All times are GMT -4. The time now is 12:48 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy