01-09-2007
forking n number of processes in a loop and stack size of the child processes
Hi,
Am working on linux. while forking in a loop how to avoid the child process from forking..for example
int n = 5;
pid_t pid;
pid_t ch_pid[5];
/*exactly wanted to create n processes and not 2^n processes*/
for(i = 0; i < n;i++)
{
if(pid = fork())
{
/* parent process */
ch_pid[n] = pid;
waitpid(pid);
}
else if(pid == 0)
{
/*child process*/
spawn_process(ch_pid[n], n);
/*In spawn_process() i will call exec()*/
}
else
{
/*Handle error*/
}
}
1. Once the child process calls exec(), do I need to do something to restrict the child process from forking?
2. What will be the stack size allocated for the child processes?
Thanks,
Anand
10 More Discussions You Might Find Interesting
1. Programming
When I compile this C programme I get different outputs each time I run it
Please explain to me whats happening in the code if you can give me a detailed explanation. Because I am stuck with this.
#include <stdio.h>
main(){
int i = 0;
printf("I am the... (1 Reply)
Discussion started by: manjuWicky
1 Replies
2. UNIX for Dummies Questions & Answers
Hi everybody,
I'm having some problems wiriting a program in UNIX using the "fork" and "kill" system calls.
I have to create a C program P0, which creates 9 other processes
P1, P2, ..., P9, where P0 is the father of P1, P1 the father of P2, and so on.
All the processes contain an infinite... (0 Replies)
Discussion started by: davewilliams20
0 Replies
3. Solaris
Hi ,
I need to count all processes contains the pattren "FND"
For Example:
I was reteriving the details of all processes related to "FND" by this command
$ ps -ef | grep FND
but now I just wanna count them .
Regards
Adel (2 Replies)
Discussion started by: ArabOracle.com
2 Replies
4. Shell Programming and Scripting
I am pretty new to unix, and I have a project to do.
Part of the project asks me to determine the number of processes running and assign it to a variable. I know how to every part of the project but determine the number of processes running.
How can I get just the number of processes... (4 Replies)
Discussion started by: wayne1411
4 Replies
5. Shell Programming and Scripting
I've got a bit of code I'm trying to work on...
What i want to happen is ... at all times have four parallel mysql dump and imports running.
I found the follow code snippet on the forum and modified it to work
by starting four concurrent processes but it waits until all four are done before... (7 Replies)
Discussion started by: dgob123
7 Replies
6. Shell Programming and Scripting
I have a bash script that has been used for months here at work for doing an SSH into other machines both Linux and Solaris and running a script on the remote machine. Recently I have started to noticed that things are being left being on the maching doing the SSH.
For example....
tivoli ... (1 Reply)
Discussion started by: LRoberts
1 Replies
7. UNIX for Dummies Questions & Answers
Hi Gang,
I need part of my script to be able to loop, check for processes running and if they aren't running, start them. It needs to loop 5 times, do a check each time, and make sure a process starts, and if its running; skip it.
I've worked with loops and checking for processes before,... (8 Replies)
Discussion started by: jeffs42885
8 Replies
8. Shell Programming and Scripting
Hi guys,
I am struggling with adapting my script to increase the performance.
I created a ksh script to process a lot of files in parallel.
I would like to know how can I do in such a way that a constant number of processes is always up (until all is finished).
What I have is (not actual... (8 Replies)
Discussion started by: lurkerro
8 Replies
9. Shell Programming and Scripting
I am trying to implement the below using Ksh script on a Lx machine.
There is a file(input_file) with 100K records. For each of these records, certain script(process_rec) needs to be called with the record as input. Sequential processing is time-consuming and parallel processing would eat up... (2 Replies)
Discussion started by: APT_3009
2 Replies
10. AIX
Hi there,
I am having a problem on an AIX server running a WebSphere MQ instance. The problem is that sometimes it seems to reach process limit, but I do not find the processes themselves.
What I see: succeed to log in (as root from console os as nonpriviliged user via ssh). Trying to run... (19 Replies)
Discussion started by: trifo75
19 Replies
LEARN ABOUT NETBSD
setpgid
SETPGID(2) BSD System Calls Manual SETPGID(2)
NAME
setpgid, setpgrp -- set process group
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <unistd.h>
int
setpgid(pid_t pid, pid_t pgrp);
int
setpgrp(pid_t pid, pid_t pgrp);
DESCRIPTION
setpgid() sets the process group of the specified process pid to the specified pgrp. If pid is zero, then the call applies to the current
process. If pgrp is zero, then the process id of the process specified by pid is used instead.
If the invoker is not the super-user, then the affected process must have the same effective user-id as the invoker or be a descendant of the
invoking process.
RETURN VALUES
setpgid() returns 0 when the operation was successful. If the request failed, -1 is returned and the global variable errno indicates the
reason.
ERRORS
setpgid() will fail and the process group will not be altered if:
[EACCES] The value of the pid argument matches the process ID of a child process of the calling process, and the child process has
successfully executed one of the exec functions.
[EINVAL] The value of the pgrp argument is less than zero.
[EPERM] The effective user ID of the requested process is different from that of the caller and the process is not a descendant of
the calling process.
[ESRCH] The value of the pid argument does not match the process ID of the calling process or of a child process of the calling
process.
SEE ALSO
getpgrp(2)
STANDARDS
The setpgid() function conforms to ISO/IEC 9945-1:1990 (``POSIX.1'').
COMPATIBILITY
setpgrp() is identical to setpgid(), and is retained for calling convention compatibility with historical versions of BSD.
BSD
December 18, 2003 BSD