Sponsored Content
Special Forums UNIX and Linux Applications How to check if process is running? Post 302417072 by Corona688 on Wednesday 28th of April 2010 12:01:33 PM
Old 04-28-2010
A traditional way is for a process to create a PID file under /var/run/. I create it under /tmp/ just as an example that can run as any user. I also use a fifo as a lock file to prevent a race condition.

Code:
#!/bin/bash

function rm_pidfile
{
        rm -f /tmp/myscript.pid
}

function is_running
{
        # File does not exist, we can run
        [ -f /tmp/myscript.pid ] || return 1
        # Read PID from file
        read PID < /tmp/myscript.pid
        # File exists but process does not.
        [ -d /proc/${PID} ] || return 1
        return 0
}

# This guarantees other scripts will wait for each other
# before checking the pidfile.  otherwise one might create the PID
# file while we're not looking.
while ! mkfifo /tmp/myscript.lock 2> /dev/null
do
        sleep 1
done

# beyond this point, /tmp/myscript.lock exists and belongs to us.  Other
# instances of the script will loop.

if is_running
then
        echo "An instance(PID ${PID}) is already running"
        rm -f /tmp/myscript.lock
        exit 1
fi

# create PID file
echo "$$" > /tmp/myscript.pid

# make sure we delete it when the program quits
trap "rm_pidfile" EXIT

# Remove the lock file
rm -f /tmp/myscript.lock

# the rest of the code goes here

while true
do
        sleep 1
done

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to check if another instance of the process is running

Hi, I am writing a shell script to invoke a C++ program. Before I start the C++ program (oi7loadbalancer), I am checking if the process is already running. I start the process only if it is not already running. I have the following check in my script. proccount=`ps -f -u $USER_NAME | grep... (8 Replies)
Discussion started by: sim
8 Replies

2. Shell Programming and Scripting

check process running

I have this script: ------------------------------------------------------- #!/bin/ksh # if ] || ] then echo "Executing main_load.sh script" /usr1/psc_load/jobs/cron/main_load.sh "ods" else echo "File not found, do nothing" fi exit 0 ... (4 Replies)
Discussion started by: rose1207
4 Replies

3. UNIX for Advanced & Expert Users

how to check how long the process has been running.

I have a requirement to check how long a process is running on unix system.If i use ps -ef i am getting the following message guest 2453638 1998920 0 16:16:05 - 0:00 dsapi_slave 9 8 0 but this is showing only time not the date.Can any one please advice me any script to find out how... (2 Replies)
Discussion started by: ukatru
2 Replies

4. UNIX for Advanced & Expert Users

How to check since when (for how long) a particular process is running ?

How do I check if a particular process is running from a certain date and time ? (2 Replies)
Discussion started by: hpuxlxboy
2 Replies

5. Shell Programming and Scripting

Check if Process is running

Hi , I have a csh code below which check the process if it's running. Can any expert advise me on the following: 1) what does this notationmean ">!" and how is it different from the append ">" notation ? 2) how does "setenv" work in this code ? # Check whether there is a running... (3 Replies)
Discussion started by: Raynon
3 Replies

6. UNIX for Dummies Questions & Answers

Command to check if a particular process is running

Hi What is the best command to check if a particular process is running in a linux server or not To check any java process, I use the below command. ps -ef |grep jvm When I execute the above command, it lists me all the processess . The above command should ideally return only the... (6 Replies)
Discussion started by: vr3w3c9
6 Replies

7. Programming

How do I check if a process is running in C

How to I check if a process is running in C? I'm trying to use ps aux |grep "process name" but failing in doing that. How do I do that? Thanks, (1 Reply)
Discussion started by: cprogdude
1 Replies

8. Shell Programming and Scripting

need to check if the process is running

Hi, I check if the process is running or not using the below. /usr/ucb/ps auxww | grep 109 |grep rmi | awk '{print $2}' 9718 Thus we see 9718 is the PID. It return blank if the process is not running. I need to perform some action if the process is not running and leave it if... (8 Replies)
Discussion started by: shifahim
8 Replies

9. UNIX for Dummies Questions & Answers

How a process can check if a particular process is running on different machine?

I have process1 running on one machine and generating some log file. Now another process which can be launched on any machine wants to know if process1 is running or not and also in case it is running it wants to stream the logs file generated by process1 on terminal from which process2 is... (2 Replies)
Discussion started by: saurabhnsit2001
2 Replies

10. Shell Programming and Scripting

Looping to check the currently running process.

Hi Gurus, t=`ps -u irb|grep -v grep|grep BSNL_PAYMENT_C` echo $t if then echo $? echo "Process Creation is Running ...." else echo "Process went down at $dat $tim" fi How would i use loop so that the script continously checks for the current status of this process.... (1 Reply)
Discussion started by: ankitknit
1 Replies
FVWM-THEMES-COM(1)						   Fvwm Utility 						FVWM-THEMES-COM(1)

NAME
fvwm-themes-com - fvwm-themes communication center SYNOPSIS
fvwm-themes-com [ --help] [ --version] [ --name name ] [ --message message ] [ --lock-and-get ] [ --get-buffer ] [ --clear-buffer ] [ --buffer-name name ] [ --line lineNbr] DESCRIPTION
This script is not a user script. It is used by Fvwm-Themes for communication between some FvwmScript scripts and some other programs. Basically, you want to start a programs in the background which support the fvwm-themes-com communication protocol (e.g., fvwm-themes-menu- app and fvwm-themes-config with the com-mode option can be used as generic examples), then you can use fvwm-themes-com to ask questions or to give instructions to the background program. The answer are displayed by fvwm-themes-com in the standard out put and can be used by a FvwmScript script via the GetoutPut instruction. The advantage of using this method is that the background program have to do its main job only once (e.g., parsing a lot of informations and storing them in some variables) and a script can have very fast answer from the back- ground program via fvwm-themes-com. OPTIONS
--help - show the help and exit --version - show the version and exit --name name - the name of the communication (e.g., if you start fvwm-themes-menuapp with --com-name pid option you must use menuapp-pid as name to communicate with it). The pipe used for communication are $FVWM_DATADIR/{.tmp-com-in-name,tmp-com-out-name,tmp-com-lock-name}. The "buffer" file is $FVWM_USERDIR/.tmp-com-buffer-name --message - A one line message to be sent to the back program. --lock-and-get - Wait (a certain "time out") for an answer of the message. Then, the answer is displayed on STDOUT. --line n - n must be an integer n > 0. In the case of a lock and get message, fvwm-themes-com will out put only the nth line of the answer of the back program on STDOUT and will copy the complete answer in a "buffer" file. If you use the get-buffer option the nth line of the buffer is out put on STDOUT. --get-buffer - Out put the buffer file on STDOUT. --buffer-name othername - Use an alternative name for the buffer file: $FVWM_USERDIR/.tmp-com-buffer-othername. This is usefull if two pro- grams use the same background program and both use the buffer. --clear-buffer - remove the buffer file. USAGE
Here an example: In the Script FvwmScript-Menus you first start the background program, here fvwm-themes-menuapp, and you set some variables for an easy use of fvwm-themes-com: # found the FvwmScript pid Set $CMD = {perl -e '$t=getppid; print $t . " "'} Set $PID = (GetOutput $CMD 1 -1) # Run fvwm-themes-menuapp until the end of the script Do {Exec fvwm-themes-menuapp --com-mode --com-name=menuapp-}$PID{ &} # to send fvwm-themes-com command Set $SendMsgAndGet = {fvwm-themes-com --name menuapp-}$PID{ --lock-and-get --message=} Set $SendMsg = {fvwm-themes-com --name menuapp-}$PID{ --message=} Set $GetLine = {fvwm-themes-com --name menuapp-}$PID{ --get-buffer --line=} Then in the Script you can ask fvwm-themes-menuapp for some informations: # Get the menu list Set $CMD = $SendMsgAndGet{"menu-items }$MENU{"} Set $ItemsList = (GetOutput $CMD 1 -1) ChangeTitle 11 $ItemsList You can also just send an instruction to fvwm-themes-menuapp: Set $CMD = $SendMsg{"exit"} Do {Exec }$CMD Of course your back program have to support the fvwm-themes-com protocol. See fvwm-themes-menuapp and fvwm-themes-config for examples (com- mode option). See also FvwmScript-Menus and FvwmScript-ThemesCenter. AUTHORS
Olivier Chapuis <olivier.chapuis@free.fr>, 5 May 2000. COPYING
The script is distributed by the same terms as fvwm itself. See GNU General Public License for details. BUGS
Report bugs to fvwm-themes-devel@lists.sourceforge.net 3rd Berkeley Distribution perl v5.6.0 FVWM-THEMES-COM(1)
All times are GMT -4. The time now is 01:22 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy