2011-06-25 14 views
6

¿El nuevo padre siempre es "init" o hay alguna manera de controlar quién llega a ser el nuevo padre?proceso de parentalización: controlar quién es el nuevo padre

Wikipedia parece indicar que siempre es "init". Realmente espero que este no sea el caso. He intentado todo lo que se me ocurre con setpgid y setsid, pero no tuve suerte. Y ahora que veo este artículo en Wikipedia, necesito un consejo.

En un sistema operativo tipo Unix como cualquier proceso de huérfanos, serán inmediatamente adoptada por el sistema de inicio especial proceso. Esta operación se llama nueva crianza y se produce automáticamente. Aunque técnicamente el proceso tiene el proceso "init" como su elemento principal, , todavía se denomina proceso huérfano ya que el proceso que originalmente creó ya no existe. Taken from wikipedia

La razón por la que pido es porque estoy haciendo una aplicación para Mac que se ejecuta una serie de procesos de trabajo. Quiero que estos procesos de trabajo aparezcan como elementos secundarios del proceso principal en la jerarquía de procesos del task manager. Algunos de los trabajadores se ejecutan como usuarios diferentes y en Mac OS X tengo que bifurcar dos veces para pasar privilegios al proceso secundario. Debido a que doblo "a la vez" los trabajadores actualmente funcionan como deamons, y cuando miro con el administrador de tareas veo que los trabajadores están teniendo "init" como su proceso principal.

Respuesta

11

Los niños huérfanos siempre son adoptados por init. No existe la forma Unix de cambiar el elemento primario a algún proceso que no sea init.


A partir de Linux 3.4 esto ya no es estrictamente cierto. Todavía no existe una forma portátil de Unix de hacer esto, pero como Andy Lutomirski señala, Linux 3.4 agrega PR_SET_CHILD_SUBREAPER para prctl.

En efecto, un subreaper cumple el papel de init(1) por sus procesos descendientes.

9

En Linux, puede usar PR_SET_CHILD_SUBREAPER para indicar que sus descendientes huérfanos deben volver a ser padre a usted en lugar de a init.

Cuestiones relacionadas