Sponsored Content
Full Discussion: How to Lock the Script?
Top Forums UNIX for Dummies Questions & Answers How to Lock the Script? Post 302876534 by chacko193 on Monday 25th of November 2013 09:16:41 AM
Old 11-25-2013
One more way to do it

Code:
#!/bin/sh

myPid=$$
scriptName=$(basename $0)
lockFile=/tmp/${scriptName}.pid

#Check if the lockfile exists. If yes check if the process that locked exists
if [ -f ${lockFile} ] 
then
  pid=$(cat $lockFile)
  if ps -ef | grep -v grep | grep -q ${pid}
  then
    echo "An earlier instance of the script ${scriptName} is running with pid ${pid}."
    exit 1
  else  #The script has exited without removing the lock file.
    rm ${lockFile}
fi

#Now create the new lockfile
echo ${myPid} >$l{lockFile}

Make sure that you remove the lock file when you exit.(Both planned and unplanned exit)
This User Gave Thanks to chacko193 For This Post:
 

10 More Discussions You Might Find Interesting

1. 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

2. Shell Programming and Scripting

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... (4 Replies)
Discussion started by: strunz
4 Replies

3. 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

4. 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

5. 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

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. 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

8. 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

9. 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

10. 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
MKFIFO(2)						      BSD System Calls Manual							 MKFIFO(2)

NAME
mkfifo, mkfifoat -- make a fifo file LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <sys/types.h> #include <sys/stat.h> int mkfifo(const char *path, mode_t mode); int mkfifoat(int fd, const char *path, mode_t mode); DESCRIPTION
The mkfifo() system call creates a new fifo file with name path. The access permissions are specified by mode and restricted by the umask(2) of the calling process. The fifo's owner ID is set to the process's effective user ID. The fifo's group ID is set to that of the parent directory in which it is created. The mkfifoat() system call is equivalent to mkfifo() except in the case where path specifies a relative path. In this case the newly created FIFO is created relative to the directory associated with the file descriptor fd instead of the current working directory. If mkfifoat() is passed the special value AT_FDCWD in the fd parameter, the current working directory is used and the behavior is identical to a call to mkfifo(). RETURN VALUES
The mkfifo() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error. ERRORS
The mkfifo() system call will fail and no fifo will be created if: [ENOTSUP] The kernel has not been configured to support fifo's. [ENOTDIR] A component of the path prefix is not a directory. [ENAMETOOLONG] A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters. [ENOENT] A component of the path prefix does not exist. [EACCES] A component of the path prefix denies search permission, or write permission is denied on the parent directory of the fifo to be created. [ELOOP] Too many symbolic links were encountered in translating the pathname. [EROFS] The named file would reside on a read-only file system. [EEXIST] The named file exists. [EPERM] The parent directory of the named file has its immutable flag set, see the chflags(2) manual page for more information. [ENOSPC] The directory in which the entry for the new fifo is being placed cannot be extended because there is no space left on the file system containing the directory. [ENOSPC] There are no free inodes on the file system on which the fifo is being created. [EDQUOT] The directory in which the entry for the new fifo is being placed cannot be extended because the user's quota of disk blocks on the file system containing the directory has been exhausted. [EDQUOT] The user's quota of inodes on the file system on which the fifo is being created has been exhausted. [EIO] An I/O error occurred while making the directory entry or allocating the inode. [EIO] An I/O error occurred while reading from or writing to the file system. [EFAULT] The path argument points outside the process's allocated address space. In addition to the errors returned by the mkfifo(), the mkfifoat() may fail if: [EBADF] The path argument does not specify an absolute path and the fd argument is neither AT_FDCWD nor a valid file descriptor open for searching. [ENOTDIR] The path argument is not an absolute path and fd is neither AT_FDCWD nor a file descriptor associated with a directory. SEE ALSO
chflags(2), chmod(2), mknod(2), stat(2), umask(2) STANDARDS
The mkfifo() system call is expected to conform to ISO/IEC 9945-1:1990 (``POSIX.1''). The mkfifoat() system call follows The Open Group Extended API Set 2 specification. HISTORY
The mkfifoat() system call appeared in FreeBSD 8.0. BSD
April 10, 2008 BSD
All times are GMT -4. The time now is 12:05 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy