Github oficial ; dirección de descarga oficial . Es difícil descargarlo sin la aceleración de Git. Permítanme compartirles la última versión estable de v2.12.0
la conexión del disco de red con fecha de lanzamiento 2023.01.29.
Archivos incluidos:
- WinSW-x64.exe
- muestra-minimal.xml
- muestra-todas las opciones.xml
Enlace: https://pan.baidu.com/s/1sN3hL5HvFzzNwuz8npaQNw
Código de extracción: vsvg
¿Por qué registrarse como servicio?: El servicio puede reiniciarse solo después de reiniciar el servidor.
Instrucciones de uso del sitio web oficial de WinSW y ejemplos compartidos
1. Instrucciones de uso en el sitio web oficial.
1.1 Instrucciones de configuración para su uso
Utilice WinSW como herramienta global
- Tome WinSW.exe o WinSW.zip de la distribución.
- Escriba myapp.xml (consulte la especificación del archivo de configuración XML y los ejemplos para obtener más detalles).
- Ejecute winsw install myapp.xml [opciones] para instalar el servicio.
- Ejecute winsw start myapp.xml para iniciar el servicio.
- Ejecute winsw status myapp.xml para ver si su servicio está en funcionamiento.
Utilizado como herramienta global, diferentes servicios utilizan diferentes archivos xml para las operaciones.
Utilice WinSW como herramienta incluida
- Tome WinSW.exe o WinSW.zip de la distribución y cambie el nombre del .exe a su gusto (como myapp.exe).
- Escriba myapp.xml (consulte la especificación del archivo de configuración XML y los ejemplos para obtener más detalles).
- Coloque esos dos archivos uno al lado del otro, porque así es como WinSW descubre su configuración correlacionada.
- Ejecute myapp.exe install [opciones] para instalar el servicio.
- Ejecute myapp.exe start para iniciar el servicio.
Cuando se usa como herramienta de enlace, el archivo xml con el mismo nombre se usa de forma predeterminada para la operación. Personalmente, creo que este método es más adecuado para socios de implementación.
Archivo de configuración de muestra
Usted escribe el archivo de configuración que define su servicio. El siguiente ejemplo es un ejemplo primitivo que se utiliza en el proyecto Jenkins:
<service>
<id>jenkins</id>
<name>Jenkins</name>
<description>This service runs Jenkins continuous integration system.</description>
<env name="JENKINS_HOME" value="%BASE%"/>
<executable>java</executable>
<arguments>-Xrs -Xmx256m -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
<log mode="roll"></log>
</service>
La especificación completa del archivo de configuración está disponible aquí . Puede encontrar más ejemplos aquí .
Este ejemplo de archivo de configuración es un archivo ejecutable típico + parámetros, adecuado para muchos servicios.
1.2 Uso
WinSW está siendo administrado por el archivo de configuración XML .
Su binario WinSW.exe renombrado también acepta los siguientes comandos:
Dominio | Descripción |
---|---|
instalar | Instala el servicio. |
desinstalar | Desinstala el servicio. |
comenzar | Inicia el servicio. |
detener | Detiene el servicio. |
Reanudar | Detiene y luego inicia el servicio. |
estado | Comprueba el estado del servicio. |
actualizar | Actualiza las propiedades del servicio sin reinstalar. |
personalizar | Personaliza el ejecutable contenedor. |
desarrollador | Comandos experimentales. |
Comandos experimentales:
Dominio | Descripción |
---|---|
PD del desarrollador | Dibuja el árbol de procesos asociado al servicio. |
muerte del desarrollador | Finaliza el servicio si ha dejado de responder. |
lista de desarrolladores | Enumera los servicios administrados por el ejecutable actual. |
La mayoría de los comandos requieren privilegios de administrador para ejecutarse. WinSW solicitará UAC en sesiones no elevadas.
Estos comandos no se explicarán en detalle y se presentarán cuando se utilicen.
2.Ejemplo de intercambio
2.1 Registrar el exe como servicio.
Aquí utilizamos MinIO de almacenamiento de objetos minio.exe
como Use WinSW as a bundled tool
ejemplo. Los pasos detallados son los siguientes:
- pasará
WinSW-x64.exe
a llamarseminio-server.ext
- El contenido del archivo de configuración agregado
minio-server.xim
es el siguiente y se pueden ver los detalles de la configuraciónsample-allOptions.xml
<service>
<id>minio-server</id>
<name>MinIO-Server</name>
<description>This service runs MINIO OBJECT STORE.</description>
<env name="MINIO_HOME" value="%BASE%"/>
<executable>%BASE%\minio.exe</executable>
<arguments>server D:\minio_data --console-address ":9001"</arguments>
<logpath>%BASE%\logs</logpath>
<log mode="roll-by-size-time">
<sizeThreshold>1024</sizeThreshold>
<pattern>yyyyMMdd</pattern>
<autoRollAtTime>00:00:00</autoRollAtTime>
<zipOlderThanNumDays>5</zipOlderThanNumDays>
<zipDateFormat>yyyyMMdd</zipDateFormat>
</log>
<env name="MINIO_ROOT_USER" value="admin" />
<env name="MINIO_ROOT_PASSWORD" value="admin123" />
</service>
cmd
Ejecute el comandominio-server.exe install
para instalarlo como un servicio (el servicio no se inicia en este momento)
INFO - Installing service 'MinIO-Server (minio-server)'...
INFO - Service 'MinIO-Server (minio-server)' was installed successfully.
- Ejecute el comando
minio-server.exe start
para iniciar el servicio.
Prueba de proceso completo:
2.2 Registrar jar como servicio
math-game.jar
Aquí utilizamos el paquete Arthas (Alsacia) para realizar pruebas Use WinSW as a bundled tool
como ejemplo. Los pasos detallados son los siguientes:
- pasará
WinSW-x64.exe
a llamarsemath-game-server.exe
- Agregue el
math-game-server.xml
contenido del archivo de configuración de la siguiente manera
<service>
<id>math-game-server</id>
<name>Math-Game-Server</name>
<description>This service runs math-game server.</description>
<env name="MATHGAME_HOME" value="%BASE%"/>
<executable>java</executable>
<arguments>-Xrs -Xmx128m -jar "%BASE%\math-game.jar"</arguments>
<logpath>%BASE%\logs</logpath>
<log mode="roll-by-size-time">
<sizeThreshold>1024</sizeThreshold>
<pattern>yyyyMMdd</pattern>
<autoRollAtTime>00:00:00</autoRollAtTime>
<zipOlderThanNumDays>5</zipOlderThanNumDays>
<zipDateFormat>yyyyMMdd</zipDateFormat>
</log>
</service>
El parámetro -Xrs es la abreviatura de "Reducir el uso de la señal", que le indica a la JVM que reduzca el uso de las señales del sistema operativo. Normalmente, la JVM captura algunas señales del sistema operativo, como SIGTERM (señal de terminación) y SIGINT (señal de interrupción), para cerrar correctamente el proceso Java. Sin embargo, con el parámetro -Xrs, la JVM minimizará el uso de estas señales y, en su lugar, dependerá del código Java para manejar la operación de apagado. Esto puede mejorar la estabilidad de la JVM en determinadas situaciones.
cmd
Ejecute el comandomath-game-server.exe install
para instalarlo como servicio (el servicio no se inicia en este momento y el estado es: detenido)
INFO - Installing service 'Math-Game-Server (math-game-server)'...
INFO - Service 'Math-Game-Server (math-game-server)' was installed successfully.
- Ejecute el comando
minio-server.exe start
para iniciar el servicio.
Registro impreso después del inicio:
Al igual que el exe, aquí solo se realiza una parte de la prueba:
3. Resumen
WinSW (Windows Service Wrapper) es un proyecto de código abierto que permite convertir cualquier archivo ejecutable (normalmente una aplicación .NET, una aplicación exe, un archivo Java JAR, etc.) en un servicio de Windows. El objetivo de WinSW es facilitar la ejecución de servicios que no son de Windows en sistemas operativos Windows. Proporciona una forma de empaquetar aplicaciones como servicios de Windows, lo que le permite iniciar, detener, pausar y reanudar aplicaciones como servicios.
Las siguientes son las principales características y usos de WinSW:
- Empaquetado de aplicaciones como servicios : WinSW le permite empaquetar varios tipos de aplicaciones como servicios de Windows sin modificar el código de la aplicación. Esto es útil para implementar aplicaciones normales como servicios.
- Administración simplificada : una vez que una aplicación se empaqueta como un servicio, puede administrarla utilizando el Administrador de servicios de Windows o herramientas de línea de comandos como
sc
comando. Esto hace que la implementación y administración de aplicaciones en Windows sea más conveniente. - Configuración personalizada : WinSW le permite personalizar el comportamiento del servicio a través de archivos de configuración XML o YAML, incluido el nombre del servicio, descripción, directorio de trabajo, parámetros de inicio, etc. Esto le permite configurar de manera flexible el servicio para satisfacer diferentes necesidades.