11-26-2009
When the process is not running, it will return the value 2
1. popen invokes the shell to execute the given command ( that sh command also will have the given pattern)
2. grep command with the given patter
and when the process is running it will return the value >2
So one of the way to find this is,
you have to convert the data reading from the pipe to integer through atoi()
and subtract 2. Then if the result is 0 - the process is not running.
if the result is > 0 the process is running.
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hi Everybody,
I want to create a shell script named as say "jip" and it is runned.
And i want that when i do ps + grep for the process than this jip should be shown as process.
Infact there might be process with name jip which is already running. (3 Replies)
Discussion started by: shambhu
3 Replies
2. Shell Programming and Scripting
Hello all,
I would be happy if any one could help me with a shell script that would determine all the processes running on a Unix server and post a mail if any of the process is not running or aborted.
Thanks in advance
Regards,
pradeep kulkarni.
:mad: (13 Replies)
Discussion started by: pradeepmacha
13 Replies
3. UNIX for Dummies Questions & Answers
I have been having some trouble trying to get some code working, so I was wondering...what system calls are required to execute a different program from an already running process? (1 Reply)
Discussion started by: Midwest Product
1 Replies
4. UNIX for Dummies Questions & Answers
Hi all, please excuse the newby question.
I run OSX servers with Filemaker and Terascript (formerly Witango, before that Tango). Terascript talks to Filemaker via JDBC so I have installed the Filemaker Xdbc extensions (JDBC, ODBC). It is a listener process that waits for JDBC commands and... (28 Replies)
Discussion started by: AusS2000
28 Replies
5. UNIX for Dummies Questions & Answers
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
6. UNIX for Dummies Questions & Answers
Hello All,
We are running a process in unix box. This is how we will do
1.our process name is Runprojectprocess <ID> configuration
2.We will be running upto 500 id at once. So we are populating a text file as Runprojectprocess 1 configuration to Runprojectprocess 500 configuration
3.... (2 Replies)
Discussion started by: arunkumar_mca
2 Replies
7. BSD
Hi Experts,
I am facing one problem here which is one process always stuck in running state which causes the other similar process to sleep state . This causes my system in hanged state.
On doing cat /proc/<pid>wchan showing the "__init_begin" in the output.
Can you please help me here... (0 Replies)
Discussion started by: naveeng
0 Replies
8. UNIX for Advanced & Expert Users
Hi Experts,
I am facing one problem here which is one process always stuck in running state which causes the other similar process to sleep state . This causes my system in hanged state.
On doing cat /proc/<pid>wchan showing the "__init_begin" in the output.
Can you please help me here... (1 Reply)
Discussion started by: naveeng
1 Replies
9. UNIX for Advanced & Expert Users
Hi Experts,
I am facing one problem here which is one process always stuck in running state which causes the other similar process to sleep state . This causes my system in hanged state.
On doing cat /proc/<pid>wchan showing the "__init_begin" in the output.
Can you please help me here... (6 Replies)
Discussion started by: naveeng
6 Replies
10. Shell Programming and Scripting
Team,
I have multiple batchjobs running in VM, if I do ps -ef |grep java or tomcat I am getting multiple process list.
How do I get my exact tomcat process running and that is unique? via shell script? (4 Replies)
Discussion started by: Ghanshyam Ratho
4 Replies
LEARN ABOUT FREEBSD
pclose
POPEN(3) BSD Library Functions Manual POPEN(3)
NAME
popen, pclose -- process I/O
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdio.h>
FILE *
popen(const char *command, const char *type);
int
pclose(FILE *stream);
DESCRIPTION
The popen() function ``opens'' a process by creating a bidirectional pipe forking, and invoking the shell. Any streams opened by previous
popen() calls in the parent process are closed in the new child process. Historically, popen() was implemented with a unidirectional pipe;
hence many implementations of popen() only allow the type argument to specify reading or writing, not both. Since popen() is now implemented
using a bidirectional pipe, the type argument may request a bidirectional data flow. The type argument is a pointer to a null-terminated
string which must be 'r' for reading, 'w' for writing, or 'r+' for reading and writing.
A letter 'e' may be appended to that to request that the underlying file descriptor be set close-on-exec.
The command argument is a pointer to a null-terminated string containing a shell command line. This command is passed to /bin/sh using the
-c flag; interpretation, if any, is performed by the shell.
The return value from popen() is a normal standard I/O stream in all respects save that it must be closed with pclose() rather than fclose().
Writing to such a stream writes to the standard input of the command; the command's standard output is the same as that of the process that
called popen(), unless this is altered by the command itself. Conversely, reading from a ``popened'' stream reads the command's standard
output, and the command's standard input is the same as that of the process that called popen().
Note that output popen() streams are fully buffered by default.
The pclose() function waits for the associated process to terminate and returns the exit status of the command as returned by wait4(2).
RETURN VALUES
The popen() function returns NULL if the fork(2) or pipe(2) calls fail, or if it cannot allocate memory.
The pclose() function returns -1 if stream is not associated with a ``popened'' command, if stream already ``pclosed'', or if wait4(2)
returns an error.
ERRORS
The popen() function does not reliably set errno.
SEE ALSO
sh(1), fork(2), pipe(2), wait4(2), fclose(3), fflush(3), fopen(3), stdio(3), system(3)
HISTORY
A popen() and a pclose() function appeared in Version 7 AT&T UNIX.
Bidirectional functionality was added in FreeBSD 2.2.6.
BUGS
Since the standard input of a command opened for reading shares its seek offset with the process that called popen(), if the original process
has done a buffered read, the command's input position may not be as expected. Similarly, the output from a command opened for writing may
become intermingled with that of the original process. The latter can be avoided by calling fflush(3) before popen().
Failure to execute the shell is indistinguishable from the shell's failure to execute command, or an immediate exit of the command. The only
hint is an exit status of 127.
The popen() function always calls sh(1), never calls csh(1).
BSD
May 20, 2013 BSD