10-23-2008
error : can not fork new process
hi
today we came across error "can not fork new process" when i checked there were 400 ksh processes were running for that particular user ( due to kernel parameter setting no of processes were restricted to 400 ) and the reason for this was somebody executed shell script which had "*" ( only * in line nothing else ) in some lines. ( and sadly there were some more scripts present with * in between )
to kill i logged in as root then ps -fu <user> | awk '{print $2}' | xargs kill -9
and even after that there were 400 processes running ( with new PID ) now next was to kill all users on mount point for that i used fuser -kuc <mp> that didnt help either i used fuser at least 10-15 times still it was of no use. then i called our sysadmin ( i am not sys admin ) who told me to rename ksh. i did that but still no help. i ended up rebooting server.
i have some questions ...
1) even after renaming ksh , why there were so many ksh processes running ? there is no ksh on server after renaming then how ?
2) what are other ways of stopping this ? its not possible to reboot server every time.
10 More Discussions You Might Find Interesting
1. Programming
Hi!
IN THE FOLLOWING PROGRAM THE VALUE OF j REMAINS UNCHANGED . WHY ? IF I WANT A VARIABLE VALUE TO CHANGE LIKE THIS , IS THERE ANY WAY TO DO IT ?
Or do we have to use shared memory variables?
main()
{
int return_pid, i, total;
int j=1;
total = TOTALRECS+1;
for... (2 Replies)
Discussion started by: AJAY BHATIA
2 Replies
2. UNIX for Dummies Questions & Answers
I need a help...
I have a HP Netserver LH 6000 U with Hardware Raid .
Sco 5.0.5 installed with Oracle database.
Total number of users, normally logged in are around 60 nos.
The system is very slow ( takes 6 hours for processing one Lakh bills) during the Billing process. Also it is... (1 Reply)
Discussion started by: saleeshpl
1 Replies
3. Programming
I have a code which has four different process, each printing different message. I have provided it with user input (implemented using thread), depending on which the corresponding message from that process has to be printed.The code is shown below.when I run the pgm, it takes input such as... (1 Reply)
Discussion started by: shashi
1 Replies
4. UNIX for Dummies Questions & Answers
Hi,
Currently, I'm getting the foll error on an IBM AIX
/etc/profile: 0403-030 The fork function failed. Too many processes already exist.
How can i check the current no. of processes which can run simultaneously on an IBM AIX machine for oracle user and how can i change ?
Thanks
Vin (1 Reply)
Discussion started by: win_vin
1 Replies
5. Red Hat
hi all,
We are trying to run a process in the background and in the process we call fork ;and wait for the child process to finish .We find that the died = wait(&status); happens after 10 seconds randomly and sometimes completes in time (within 1 sec)
This behavior is seen only when the... (0 Replies)
Discussion started by: vishnu.priya
0 Replies
6. Red Hat
hi all,
We are trying to run a process in the background and in the process we call fork ;and wait for the child process to finish .We find that the died = wait(&status); happens after 10 seconds randomly and sometimes completes in time (within 1 sec)
This behavior is seen only when the... (1 Reply)
Discussion started by: vishnu.priya
1 Replies
7. Programming
Assume you have such a piece of (more or less pseudo-)code:
if(fork() == 0) {// childprocess
chmod(someProgram, 00777);
exec(someProgram);
} else { // assume it never fails and this is the parent
chmod(someProgram, 00000); // should be executed as soon as possible after the... (5 Replies)
Discussion started by: disaster
5 Replies
8. Programming
Making a C program (process PP) that satisfies the following requirements:
1. Pp receives 3 ≤ N ≤ 10 arguments on the command line invocation, to interpret
as a whole and thus should be 1 ≤ Ni ≤ 4;
2. Pp initially will have to create N processes Pi children facing a range of life
to
... (1 Reply)
Discussion started by: loweherz
1 Replies
9. Programming
Hello All, I am stuck up in a program where the rand functions ends up giving all the same integers. Tried sleep, but the numbers turned out to be same... Can anyone help me out how to fix this issue ? I have called the srand once in the program, but I feel like when I call fork the child process... (5 Replies)
Discussion started by: manisum
5 Replies
10. Programming
Hello everyone, this is my first post.
I have a task to use a fork to create multiple processes and then use execlp to run another program to add 2 numbers.
The problem I am having is we are supposed to use the exit() call in the execlp to return the small integer. This is a bad way to... (3 Replies)
Discussion started by: Johnathan_1017
3 Replies
VFORK(2) System Calls Manual VFORK(2)
NAME
vfork - spawn new process in a virtual memory efficient way
SYNOPSIS
pid = vfork()
int pid;
DESCRIPTION
Vfork can be used to create new processes without fully copying the address space of the old process, which is horrendously inefficient in
a paged environment. It is useful when the purpose of fork(2) would have been to create a new system context for an execve. Vfork differs
from fork in that the child borrows the parent's memory and thread of control until a call to execve(2) or an exit (either by a call to
exit(2) or abnormally.) The parent process is suspended while the child is using its resources.
Vfork returns 0 in the child's context and (later) the pid of the child in the parent's context.
Vfork can normally be used just like fork. It does not work, however, to return while running in the childs context from the procedure
that called vfork since the eventual return from vfork would then return to a no longer existent stack frame. Be careful, also, to call
_exit rather than exit if you can't execve, since exit will flush and close standard I/O channels, and thereby mess up the parent processes
standard I/O data structures. (Even with fork it is wrong to call exit since buffered data would then be flushed twice.)
SEE ALSO
fork(2), execve(2), sigvec(2), wait(2),
DIAGNOSTICS
Same as for fork.
BUGS
This system call will be eliminated when proper system sharing mechanisms are implemented. Users should not depend on the memory sharing
semantics of vfork as it will, in that case, be made synonymous to fork.
To avoid a possible deadlock situation, processes that are children in the middle of a vfork are never sent SIGTTOU or SIGTTIN signals;
rather, output or ioctls are allowed and input attempts result in an end-of-file indication.
4th Berkeley Distribution June 30, 1985 VFORK(2)