nohup ejecuta un proceso en segundo plano. ¿Hay algún equivalente para Windows?
windows
background-process
nohup
Jader Dias
fuente
fuente
START
comando no se separa, es decir, sigue siendo un elemento secundario del proceso que lo creó. En su ejemplo, significará que 'command3' morirá cada vez que finalice el proceso madre. Unix evita esto haciendo que se conozca como un "tenedor dos veces", pero no sé de un equivalente en Windows.exec(<some windows executable>)
. Puedo ver claramente en Process Explorer la relación padre-hijo y todo lo que empiezo desde dentroexec()
no sobrevive. Corrija que parece funcionar si inicio uncmd.exe
menú Inicio donde el proceso iniciado parece quedar huérfano 'correctamente' cuandocmd.exe
sale. Claramente necesito entender esto mejor. :-(Es posible que desee ver los servicios de Windows. Hay algunas herramientas que puede descargar para alojar cualquier proceso como un servicio de Windows. Esto hace que el proceso se cargue en segundo plano al iniciar Windows, por lo que siempre que no requiera la interacción del usuario, debería poder alojarlo de esta manera.
Kit de recursos de Windows Server 2003
La herramienta que busca se llama srvany.exe.
fuente
La única forma, en Windows, de que un usuario pueda iniciar un proceso que continúa ejecutándose después del cierre de sesión (es decir, lo que hace "nohup") es iniciarlo a través de una "tarea programada" o como un servicio de Windows. Cuando el usuario cierra la sesión, todos los procesos en su sesión de inicio de sesión se eliminarán.
Si quieres probar el método de "Tareas programadas", querrás saber cómo crearlas mediante programación. La clase WMI Win32_ScheduledJob puede hacerlo. La documentación se proporciona en detalle aquí: http://www.microsoft.com/technet/scriptcenter/guide/sas_man_rsxs.mspx?mfr=true Básicamente, lo que está buscando es hacer (descaradamente robado de Microsoft):
Para conceder al "usuario joe" la capacidad de crear tareas programadas, deberá modificar el permiso en la carpeta% SystemRoot% \ Tasks. Consulte aquí para obtener información sobre ese frente: http://technet.microsoft.com/en-us/library/cc785125(WS.10).aspx
fuente
Todo esto depende de cuál sea su propósito final. Puede ejecutar una tarea programada con la opción de ejecutar solo si el usuario ha iniciado sesión configurado en DESACTIVADO. Posiblemente podría usar psexec desde una máquina remota. Mejor aún podría ser ejecutar el proceso como un servicio. Eche un vistazo a esta búsqueda de Google , esta otra búsqueda de Google , este hilo y este otro hilo para encontrar posibles clientes potenciales en su búsqueda de una solución. En última instancia, parece que no hay un equivalente exacto de nohup en una máquina con Windows.
fuente