10-15-2005
How to wait for logical "OR"
Since my info/man pages are incomplete, I am assuming wait implements a logical "AND" allowing my parent process to sleep until all the children have died.
(1) How would I implement an "OR" wait where the parent waits for the first child to die, examine the return status code of that child, and possibly spawn a new child to take its place?
The children will all be running perl.
(2a) I've tried writing synchronous perl children use various integer values for exit function, but I cannot figure out how to detect the exit values in bash. How is this done for a synchronous child?
(2b) How do I detect the return status code for an asynchronous child when the parent is blocking on multiple children wait for the first to die?
Thanks much!
Siegfried
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hello all,
I got this little problem. I don't know what happen, but its not stopping work but is more of an FYI. I have this funny process running when I do ps -aef (on RedHat AS3 ) server I get this funny child process.
root 2345 1 .... /usr/bin/kdm -nodaemon
root... (6 Replies)
Discussion started by: larryase
6 Replies
2. Programming
i want to create 3 child processes from the same parent using folk. I know how to use folk but my child processes did not come from the same parent. Any suggestion what i did wrong ? (12 Replies)
Discussion started by: Confuse
12 Replies
3. UNIX for Dummies Questions & Answers
hello every one,
i want to know more about creation of child process.
UNDER WHAT CIRCUMSTANCES child process is created?
WHAT ARE THE PREREQUISITES for a child process to be created?
let us say we have a prog.c, prog.obj(compiled.c),.a\.out files.
is any child PROCESS CREATED... (12 Replies)
Discussion started by: compbug
12 Replies
4. Shell Programming and Scripting
Hi All,
I have two ksh script. 1st script calls the 2nd script and the second script calls an 'C' program.
I want 1st script to wait until the 'C' program completes.
I cant able to get the process id for the 'C' program (child process) to make the 1st script to wait for the second... (7 Replies)
Discussion started by: sennidurai
7 Replies
5. Shell Programming and Scripting
Hi ,
I want to find out the child process name given its PID. I have used the ps command but it displays the parent process name against child PID.
Is there any way to find out name of child program executing under any parent program? (1 Reply)
Discussion started by: sneha_heda
1 Replies
6. Shell Programming and Scripting
Hey all, I need to launch a script from within 2 other scripts that can run independently of the two parent scripts... Im having a hard time doing this, if anyone knows how please let me know.
More detail.
ScriptA (bash), ScriptB (ksh), ScriptC (bash)
ScriptA, launches ScriptB
ScirptB,... (7 Replies)
Discussion started by: trey85stang
7 Replies
7. Shell Programming and Scripting
!/bin/sh
pid=$(ps -Aj | grep MSTRSvr | grep -v grep | awk '{print $1}')
sid=$(ps -Aj | grep MSTRSvr | grep -v grep | awk '{print $3}')
ps -s "$sid"
I am not able to get the desired output it says process list error
if i use watch ps -s "$sid" it considers only the first session id (5 Replies)
Discussion started by: schippada
5 Replies
8. Emergency UNIX and Linux Support
Hello, everyone.
Here's a program:
pid_t pid = fork();
if (0 == pid) // child process
{
execvp ...;
}
I send a signal (such as SIGINT) to the parent process, the child process receive the signal as well as the parent process.
However I don't want to child process to receive the... (7 Replies)
Discussion started by: jackliang
7 Replies
9. Shell Programming and Scripting
Hi everyone
i am very new to linux , working on bash shell.
I am trying to solve the given problem
1. Create a process and then create children using fork
2. Check the Status of the application for successful running.
3. Kill all the process(threads) except parent and first child... (2 Replies)
Discussion started by: vizz_k
2 Replies
10. Shell Programming and Scripting
HI
Am trying to get child process id for a PID using ksh..
ps -ef | grep xntpd
root 3342472 2228308 0 12:17:40 - 0:00 /usr/sbin/xntpd
root 4522024 6488316 0 12:18:56 pts/0 0:00 grep xntpd
root 6291614 3342472 0 12:17:40 - 0:00 /usr/sbin/xntpd
Here now i... (1 Reply)
Discussion started by: Priya Amaresh
1 Replies
setpgid(2) System Calls Manual setpgid(2)
NAME
setpgid(), setpgrp2() - set process group ID for job control
SYNOPSIS
DESCRIPTION
The and system calls cause the process specified by pid to join an existing process group or create a new process group within the session
of the calling process. The process group ID of the process whose process ID is pid is set to pgid. If pid is zero, the process ID of the
calling process is used. If pgid is zero, the process ID of the indicated process is used. The process group ID of a session leader does
not change.
is provided for backward compatibility only.
Security Restrictions
Some or all of the actions associated with this system call are subject to compartmental restrictions.
See compartments(5) for more information about compartmentalization on systems that support that feature. Compartmental restrictions can
be overridden if the process possesses the privilege (COMMALLOWED). Processes owned by the superuser may not have this privilege. Pro-
cesses owned by any user may have this privilege, depending on system configuration.
See privileges(5) for more information about privileged access on systems that support fine-grained privileges.
RETURN VALUE
and return the following values:
Successful completion.
Failure.
is set to indicate the error.
ERRORS
If or fails, is set to one of the following values.
The value of pid matches the process ID of a child process of the calling process and the child process has successfully executed
one of the exec(2) functions.
The value of pgid is less than zero or is outside the range of valid process group ID values.
The process indicated by
pid is a session leader.
The value of pid is valid but matches the process ID of a child process of the calling process, and the child process is not in
the same session as the calling process.
The value of pgid does not match the process ID of the process indicated by pid and there is no process with a process group ID
that matches the value of pgid in the same session as the calling process.
The value of pid does not match the process ID of the calling process or of a child process of the calling process.
AUTHOR
and were developed by HP and the University of California, Berkeley.
SEE ALSO
bsdproc(3C), exec(2), exit(2), fork(2), getpid(2), kill(2), setsid(2), signal(2), privileges(5), termio(7).
STANDARDS CONFORMANCE
setpgid(2)