Sponsored Content
Top Forums Programming forking n number of processes in a loop and not 2^n Post 302102259 by rvan on Tuesday 9th of January 2007 08:56:25 AM
Old 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

Forking in a loop

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

forking and killing parent processes

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

How to find number of processes ?

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

Determine Number of Processes Running

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

Keep a certain number of background processes running

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

Forking a bunch of processes and filling up the process table

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

For loop for checking processes

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

Keep up constant number of parallel processes

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

Controlling the Number of Child processes

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

Maxuproc parameter and number of processes

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
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
All times are GMT -4. The time now is 06:10 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy