Saltar al contenido

¿Cómo ejecutar un comando en segundo plano en Windows?

Gloria, miembro de nuestro equipo, nos ha hecho el favor de escribir este escrito porque conoce muy bien el tema.

Solución:

Creo que el comando que estás buscando es start /b *command*

para unix, nohup representa ‘sin colgar’, que es ligeramente diferente a un trabajo en segundo plano (que sería *command* &. Creo que el comando anterior debería ser similar a un trabajo en segundo plano para Windows.

Supongo que lo que quiere hacer es ejecutar un comando sin una interfaz (¿posiblemente automáticamente?). En windows hay una serie de opciones para lo que buscas:

  • Lo mejor: escriba su programa como un servicio de Windows. Estos comenzarán cuando nadie inicie sesión en el servidor. Le permiten seleccionar la cuenta de usuario (que puede ser diferente a la suya) y se reiniciarán si fallan. Estos se ejecutan todo el tiempo para que pueda automatizar tareas en momentos específicos o en un horario regular desde ellos. Para obtener más información sobre cómo escribir un servicio de Windows, puede leer un tutorial en línea como (http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.110).aspx).

  • Mejor: Inicie el comando y oculte la ventana. Suponiendo que el comando es un comando de DOS, puede usar un script VB o C# para esto. Consulte aquí para obtener más información. Un ejemplo es:

    Set objShell = WScript.CreateObject("WScript.Shell")
    objShell.Run("C:yourbatch.bat"), 0, True
    

    Aún tendrá que iniciar el comando manualmente o escribir una tarea para iniciar el comando. Esta es una de las mayores caídas de esta estrategia.

  • Lo peor: Inicie el comando usando la carpeta de inicio. Esto se ejecuta cuando un usuario inicia sesión en la computadora

¡Espero que eso ayude a algunos!

Utilizar el start comando con el /b bandera para ejecutar un comando/aplicación sin abrir una nueva ventana. Por ejemplo, esto se ejecuta dotnet run en el fondo:

start /b dotnet run

También puede pasar parámetros al comando/aplicación. Por ejemplo, estoy iniciando 3 instancias de este proyecto C#, con valores de parámetro de x, yy z:

ingrese la descripción de la imagen aquí

Para detener la ejecución de los programas en segundo plano: CTRL + BREAK

En mi experiencia, esto detiene todos los comandos/programas en segundo plano que ha iniciado en ese cmd instancia.

Según los documentos de Microsoft:

El manejo de CTRL+C se ignora a menos que la aplicación habilite el procesamiento de CTRL+C. Use CTRL+BREAK para interrumpir la aplicación.

Aquí tienes las comentarios y valoraciones

Tienes la opción de añadir valor a nuestro contenido asistiendo con tu veteranía en las notas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *