01-20-2006
I guess we can't simply touch a file, it should hold the pid of the process and check for that pid and whether it is same process or not.
#!/usr/bin/ksh
lockfile="/application/data/${pname}.lck"
pname="scripname"
if [ -f $lockfile ]
then
ps_cnt = $( ps -ef | grep $pname | fgrep -cf $lockfile )
fi
if [ ! -f $lockfile ] || (( $ps_cnt < 1 ))
then
echo "process not running, restarting it...."
nohup $lockfile &
sleep 5;
ptree $$ | grep $pname | sed 's/^[ ]*\([0-9]*\) .*$/\1/g' > /application/data/${pname}.lck
fi
fi
not tested...
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi guys I'm very new to unix and I have to create an awk script that detects webpage addresses from a file/webpage and outputs how many times each webpage was detected.e.g. if my file was:
(Note: The symbol " was added to stop them being created into links)
"www.google.com"... (1 Reply)
Discussion started by: ROFL
1 Replies
2. Shell Programming and Scripting
Hi guys I'm very new to unix and I have to create an awk script that detects webpage addresses from a file/webpage and outputs how many times each webpage was detected.e.g. if my file was:
www.google.com
www.facebook.com
www.google.com
the output should be:
www.google.com x2... (2 Replies)
Discussion started by: ROFL
2 Replies
3. Shell Programming and Scripting
Dear community,
what I'm try to do is deny users to run a script without parameters from command bash, but the same script should run without parameters only from crontab.
Example runs by crontab:*/5 * * * * /tmp/script.sh
Here the normal execution starts every 5 minutes
Example #1 runs by... (16 Replies)
Discussion started by: Lord Spectre
16 Replies
4. Shell Programming and Scripting
I wish to print my current shell which happens to be bash in my script check.sh
more check.sh
echo $0
echo `ps -p $$`
But instead of printing it prints check.sh i.e the name of the script for both the commands.
Can you please suggest how to print the current shell i m on inside the... (2 Replies)
Discussion started by: mohtashims
2 Replies
5. Shell Programming and Scripting
Hi all,
I am needing some help with a script that will search for a video file by known extensions and then do a pattern search (I'm guessing via regex) and then based on a match of one type of another move the file to an assigned directory.
I would like to do this with either a shell script... (7 Replies)
Discussion started by: Simplify
7 Replies
6. Shell Programming and Scripting
Hello,
I am running a python file from terminal and I wish to see which code is running at background. When I use htop, I see just a few commands, unable to see entire command.
htop > report
nano report
Output:
^
Following parts of ffmpeg line is not shown by htop. Just showing... (7 Replies)
Discussion started by: baris35
7 Replies
7. UNIX for Advanced & Expert Users
Hi forum,
So I am trying to determine the OS type with the following script:
#!/usr/bin/sh
OStype1=`uname -s`
Sunos1=SunOs
if
then
echo "This system is Linux"
exit 0
elif
then
echo "This system is SunOs"
exit 0
elif (1 Reply)
Discussion started by: dampio
1 Replies
8. UNIX for Beginners Questions & Answers
Hello there,
I am not an expert in networking related stuff but I got a requirement to create UNIX script to query our Company's internal time source via NTP for time drift detect and report it when > +/- 50ms.
I have been googling a lot but thought to post it in this forum to get a... (1 Reply)
Discussion started by: Green_Star
1 Replies
9. HP-UX
Hello there,
I am not an expert in networking related stuff but I got a requirement to create UNIX script to query our Company's internal time source via NTP for time drift detect and report it when > +/- 50ms.
I have been googling a lot but thought to post it in this forum to get a... (17 Replies)
Discussion started by: Green_Star
17 Replies
10. Shell Programming and Scripting
Hello,
I have a small script and it runs from web application in below format:
pipe:///path_to_myscript.sh url1 url2 url3
myscript.sh:
#!/bin/bash
count=0
while
do
count=$((count+1))
exec 3>&1
((ffmpeg -i $1 ...... -f mpegts pipe:1 2>/dev/null 1>&3 ) 2>&1 | \
while read LINE; do echo... (9 Replies)
Discussion started by: baris35
9 Replies
LEARN ABOUT LINUX
lockfile-touch
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)