10-31-2001
Finding Out When A Process Has Finished?
Problem
I have an application which basically runs lots of UNIX programs remotely, using the Telnet protocol. For each program it remotely executes, it stores the process ID (PID) for that process.
At regular intervals, I would like my application to take the PID for every process still running and find out if it is still running, or if it has terminated.
Solution
What is the most elegant, or the cleanest way of finding out whether a process is still running? Bear in mind that it is a program doing the checking, not a human!
My idea was simply to execute a "ps -p <PID>" command for every PID and if there are no entries, the process has terminated, otherwise it must still be running.
What do you think? Thankyou very much.
9 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
is there a way to find the process id of a process because i have same process invoked several times.
when i need to kill them, i get confused with the id.
Thanks,
sskb
:( (8 Replies)
Discussion started by: sskb
8 Replies
2. UNIX for Dummies Questions & Answers
Hi,
If in a shell script i write a command
ls > bla &
ls
The output is redirected to bla and the next ls starts as first one is going on in background.
I want to find the PID of the first command.
Thanks in advance (2 Replies)
Discussion started by: vibhor_agarwali
2 Replies
3. Shell Programming and Scripting
Hi Gurus,
How can i find background process is completed or not. I have mentioned my scenario below.
Actually Pr1 Process is running in back ground, i just want to know whether this process completed or not. I can come to know the process id by typing pid=$! but i want to trigger... (4 Replies)
Discussion started by: krk_555
4 Replies
4. Linux
Hello,
Iam running a apache webserver in CentOS recenlty a hacker has attacked my server using RFI attack and did something in my server.. After that everyday at 8Pm my httpd is using about 5000 pid's actually in normal it takes only about 30 - 40 pid's. and also exim uses 2000 pid's totally my... (2 Replies)
Discussion started by: dheeraj4uuu
2 Replies
5. Shell Programming and Scripting
Hi
Any idea how to get the process id of the process using the ports
lsof -i :portnumber does not work in my machine. I am on sun Solaris SPARC.
Any suggestion is highly appreciated (1 Reply)
Discussion started by: kinny
1 Replies
6. UNIX for Advanced & Expert Users
hi all,
I am trying to find the process id of the subsequent process created via fork and exec calls in perl.
For eg:
envVarSetter dataCruncher.exe < input.txt > output.txt
When I fork and exec the above command,
it returns only the pid of envVarSetter and I don't know how to find the... (9 Replies)
Discussion started by: matrixmadhan
9 Replies
7. UNIX for Dummies Questions & Answers
Afternoon all, hopefully someone can give me a hand with this (the following may be explained very poorly :rolleyes: )
I know there's a process running on one of our Solaris 10 boxes that runs approximately every 5 minutes. Unfortunately I've no idea, who owns it, what it is called, or how it is... (2 Replies)
Discussion started by: dlam
2 Replies
8. Shell Programming and Scripting
Hello,
The scenario is as follows, I have a background process running initially for which i know the PID on machine1. I use ssh from machine 2 to execute a script in machine 1. For some reason the back ground process is terminated. I would like to know which process caused the... (6 Replies)
Discussion started by: prasbala
6 Replies
9. Shell Programming and Scripting
Hi,
I am trying to find a file that have a different name than it should be processing, the file name is ( Fifa15 )
is there a command to use?
I got that file by
ps -ef | grep fifa15
but how do I know what is running ?
thanks a lot, I am learning unix so sorry if that is a... (2 Replies)
Discussion started by: latinooo
2 Replies
LEARN ABOUT REDHAT
setsid
SETSID(2) Linux Programmer's Manual SETSID(2)
NAME
setsid - creates a session and sets the process group ID
SYNOPSIS
#include <unistd.h>
pid_t setsid(void);
DESCRIPTION
setsid() creates a new session if the calling process is not a process group leader. The calling process is the leader of the new session,
the process group leader of the new process group, and has no controlling tty. The process group ID and session ID of the calling process
are set to the PID of the calling process. The calling process will be the only process in this new process group and in this new session.
RETURN VALUE
The session ID of the calling process.
ERRORS
On error, -1 will be returned. The only error which can happen is EPERM. It is returned when the process group ID of any process equals
the PID of the calling process. Thus, in particular, setsid fails if the calling process is already a process group leader.
NOTES
A process group leader is a process with process group ID equal to its PID. In order to be sure that setsid will succeed, fork and exit,
and have the child do setsid().
CONFORMING TO
POSIX, SVr4.
SEE ALSO
setpgid(2), setpgrp(2)
Linux 1.0.0 1994-08-27 SETSID(2)