About init


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers About init
# 1  
Old 04-26-2008
About init

I know if a parent process exits before its child, the last one becomes orphan for a while and then is added to the children of Init process.
I'd like to know deeper
1 how the orphan becomes init process,
2 how init knows that from a some point on it has another child.
Thank you in advance.
# 2  
Old 04-26-2008
It is not a two step procedure. Let's say that process 500 has a child with a pid of 501. When process 500 calls exit(), the kernel will search the process table for any process with ppid of 500. It will find the pid 501 has a ppid of 500. So it is changed from 500 to 1. init does not know this happened nor does it care. However, at some point in the future, process 501 may also call exit(). If this happens, the kernel will notice that init is the parent. Since init has installed a handler for SIGCHLD, that signal will be delivered to init. However, process 501 will become a zombie for a brief period. init will process the signal and will wait for for the child which lays the zombie to rest. Suppose that process 501 has exited some time ago and process 500 couldn't be bothered to issue a wait(). Now 501 is a zombie. Most kernels will destroy 501 when 500 exits. Signals do not queue in every version of unix and, even if they do, the queue depth is not infinite. So if 50 processes, all currently children of init, suddenly decide to exit, init may not reliably get 50 SIGCHLD signals. To handle lost signals init will loop when it gets a SIGCGLD and wait for all zombies, not just one. init also will wake up every few minutes via a timer and loop waiting for any zombies.
# 3  
Old 04-26-2008
Thank you very much Perderabo
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Red Hat

init-script failing because of /etc/rc.d/init.d/functions

I encountered a problem on one of our database servers. OS: CentOS 5.5 final Kernel: 2.6.18-238.5.1.el5.028stab085.2 (OpenVZ kernel) We wrote some DB-Start/Stop-scripts ("/db2/admin/scripts_dba/start_services.ksh" and ".../stop_services.ksh") to start the database instances. (Database... (1 Reply)
Discussion started by: bakunin
1 Replies

2. Solaris

What is the diffe b/w init s and init S

i did my research in finding the answer but couldn't find right one. Please give your inputs. (6 Replies)
Discussion started by: ranumala
6 Replies

3. UNIX for Advanced & Expert Users

Problem on init 0, execution is the same with init 6

Hi, I am experiencing a weird thing on my SUNFIRE machine with Solaris 9 OS. When I do init 0 to shutdown the machine to go to ok prompt, what it did was shutdown and reboot like an init 6 command do. I did check the corresponding rc scripts that were involved with init 0 and compared with rc... (2 Replies)
Discussion started by: Yenthanh
2 Replies

4. Solaris

/etc/rc2.d vs /etc/init.d

Hi, Can somebody please tell me the difference between the files in /etc/rc2.d and those in /etc/init.d? I am asking because on one system, I got a sysedge file S99.sysedge under /etc/rc2.d and it has a soft link to the /etc/init.d/sysedge. It would be my understanding that the one under... (6 Replies)
Discussion started by: Pouchie1
6 Replies

5. Red Hat

Difference between 'init s' and 'init 1'

What is the difference between 'init s' and 'init 1'. I know that both will work to change the current run level to single user mode. Is there any difference in those two commands? (5 Replies)
Discussion started by: praveen_b744
5 Replies

6. Linux

How to I change init levels after typing init 1

Dear all, I typed in init 1 on my redhat box as root and according to wikipedia (http://en.wikipedia.org/wiki/Runlevel): 1 Single-User Mode Does not configure network interfaces, start daemons, or allow non-root logins So now I can't connect back to it. How do I change the init back to 3?... (8 Replies)
Discussion started by: z1dane
8 Replies

7. Solaris

different between /sbin/init and /usr/sbin/init

root@test09 # ls -al /sbin/init -r-xr-xr-x 1 root sys 550000 Jun 29 2002 /sbin/init root@test09 # ls -al /usr/sbin/init -r-xr-xr-x 1 root sys 37100 Jun 29 2002 /usr/sbin/init (2 Replies)
Discussion started by: userking
2 Replies

8. UNIX for Advanced & Expert Users

Init 6 & Init 0 problem

Hi Expert, I have encountered some problem with my SUN system. Everytime when i issue command #init 6 OR #init 0 it just logout and prompt for login again instead of rebooting the server when run init 6 and system shutdown when run init 0.. I can only reboot the system using reboot ... Was... (6 Replies)
Discussion started by: sc2005
6 Replies

9. UNIX for Dummies Questions & Answers

init.d

I have written a daemon and want to make sure that it starts up again after the machine is re-started so I can quit manually doing it. Problem is I'm having difficulty understanding what to do with the init.d Any help would be appreciated! (1 Reply)
Discussion started by: BC_Kevin
1 Replies
Login or Register to Ask a Question