windows - programadas - aplicacion en segundo plano c#
¿Cómo puedo bifurcar un proceso en segundo plano desde una secuencia de comandos Perl CGI en Windows? (4)
He tenido problemas al bifurcar procesos de una secuencia de comandos Perl CGI cuando se ejecuta en Windows. El problema principal parece ser que ''fork'' se emula cuando se ejecuta en Windows, y en realidad no parece crear un nuevo proceso (solo otro hilo en el actual). Esto significa que los servidores web (como IIS) que esperan que el proceso finalice, continúan esperando hasta que finalice el proceso de "fondo".
¿Hay alguna forma de bifurcar un proceso en segundo plano desde un script CGI en Windows? Mejor aún, ¿hay una sola función a la que pueda llamar que haga esto de forma cruzada?
(Y solo para hacer la vida más difícil, realmente me gustaría una buena manera de redirigir la salida de procesos bifurcados a un archivo al mismo tiempo).
Si desea hacer esto de una manera independiente de la plataforma, Proc :: Background es probablemente la mejor manera.
Use Win32 :: Process-> Create con el parámetro DETACHED_PROCESS
perlfork :
Perl proporciona una palabra clave fork () que corresponde a la llamada al sistema Unix del mismo nombre. En la mayoría de las plataformas tipo Unix donde está disponible la llamada al sistema fork (), el tenedor de Perl () simplemente lo llama.
En algunas plataformas, como Windows, donde la llamada al sistema fork () no está disponible, Perl se puede construir para emular fork () en el nivel del intérprete. Si bien la emulación está diseñada para ser lo más compatible posible con la horquilla real () al nivel del programa Perl, existen ciertas diferencias importantes que se derivan del hecho de que todos los pseudo-procesos infantiles creados de esta manera en vivo en el mismo proceso real en lo que respecta al sistema operativo.
He encontrado problemas reales con fork () en Windows, especialmente cuando se trata de objetos Win32 en Perl. Por lo tanto, si va a ser específico de Windows, realmente recomiendo que mires la biblioteca Thread dentro de Perl.
Utilizo esto con buenos resultados aceptando más de una conexión a la vez en sitios web que usan IIS, y luego uso aún más hilos para ejecutar diferentes scripts a la vez.