Lines 410-421
procdesc_close(struct file *fp, struct thread *td)
Link Here
|
410 |
procdesc_free(pd); |
410 |
procdesc_free(pd); |
411 |
|
411 |
|
412 |
/* |
412 |
/* |
413 |
* Next, reparent it to init(8) so that there's someone |
413 |
* In case there is no tracing process, reparent to |
414 |
* to pick up the pieces; finally, terminate with |
414 |
* p_reaper so that there's someone to pick up the |
415 |
* prejudice. |
415 |
* pieces; finally, terminate with prejudice. |
416 |
*/ |
416 |
*/ |
417 |
p->p_sigparent = SIGCHLD; |
417 |
if (!(p->p_flag & P_TRACED)) { |
418 |
proc_reparent(p, initproc); |
418 |
p->p_sigparent = SIGCHLD; |
|
|
419 |
proc_reparent(p, p->p_reaper); |
420 |
} |
419 |
if ((pd->pd_flags & PDF_DAEMON) == 0) |
421 |
if ((pd->pd_flags & PDF_DAEMON) == 0) |
420 |
kern_psignal(p, SIGKILL); |
422 |
kern_psignal(p, SIGKILL); |
421 |
PROC_UNLOCK(p); |
423 |
PROC_UNLOCK(p); |