Pregunta

Tengo dos procesos, A y B. En algún momento A crea B. Después de que se crea B, si A del proceso de A árbol es asesinado, quiero que B todavía esté cerca.

Estoy usando CreateProcess () para crear B, y parece que no puedo encontrar ninguna forma de hacer que cree el proceso sin que sea un niño. Lo mismo con ShellexCuteEx (), pero probablemente me falta algo de bandera.

¿Alguien sabe lo que podría usar para hacer esto?

EDITAR: Olvidé mencionar que ambos procesos necesitan una identificación de manejo o proceso al otro

¿Fue útil?

Solución

Puede probar ese proceso A Crear proceso C, que crea el proceso B y luego el proceso C se terminará inmediatamente (terminado). En un proceso B, solo existe información sobre el proceso de los padres directos (ID de proceso de C que no está en ejecución) y no sobre el proceso A. Por lo tanto, "si se mata el árbol de proceso de A", el proceso B probablemente seguirá ejecutando.

Por ejemplo, inicia el explorador de procesos (ver http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx) Luego comience el comandante total. Del comandante total que comienza cmd.exe. Desde cmd.exe comienza notepad.exe. Luego escriba "Salir" en el cmd.exe. Después de finalizar CMD.EXE, puede ver que Notepad.exe ya no se mostrará bajo el Comandante Total (TotalCmd.exe). Después de elegir en Process Explorer "Kill Process Tree" para el comandante total (totalcmd.exe), puede ver que el notepad.exe se mantiene en funcionamiento.

Otros consejos

Puede establecer los fraationflags parameteros como DETACHED_PROCESS en la API Createprocess.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top