【Windows】【DevOps】Windows Server 2022 采用WinSW将一个控制台应用程序作为服务启动(方便)

embedded/2024/10/17 15:59:05/

下载WinSW

项目地址:

GitHub - winsw/winsw: A wrapper executable that can run any executable as a Windows service, in a permissive license.

下载地址:

https://github.com/winsw/winsw/releases/download/v2.12.0/WinSW-x64.exe

参考配置模板

<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" /><onfailure action="restart" />
</service>

创建服务目录

结构如下:

PS C:\ConsoleApp1Service> ls目录: C:\ConsoleApp1ServiceMode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2024/10/12     15:52           4608 ConsoleApp1.exe
-a----        2024/10/14     10:12       18243033 ConsoleApp1Service.exe
-a----        2024/10/14     10:19            312 ConsoleApp1Service.xml
-a----        2024/10/14     10:25             46 CreateConsoleApp1Service.ps1

ConsoleApp1.exe

控制台程序

ConsoleApp1Service.xml

<service><id>ConsoleApp1Service</id><name>ConsoleApp1Service</name><description>This service runs ConsoleApp1Service continuous integration system.</description>  <executable>C:\ConsoleApp1Service\ConsoleApp1.exe</executable>  <log mode="roll" /><onfailure action="restart" />
</service>

CreateConsoleApp1Service.ps1

.\ConsoleApp1Service.exe install ConsoleApp1Service.xml
Start-Service ConsoleApp1Service

ConsoleApp1Service.exe

下载的WinSW-x64.exe修改文件名为ConsoleApp1Service.exe,保持文件名与.xml配置文件对应!

创建并启动ConsoleApp1Service服务

管理员启动powershell,执行CreateConsoleApp1Service.ps1

服务日志

WinSW日志:ConsoleApp1Service.wrapper.log

2024-10-14 10:40:11,915 DEBUG - Starting WinSW in console mode
2024-10-14 10:40:12,004 INFO  - Installing service 'ConsoleApp1Service (ConsoleApp1Service)'...
2024-10-14 10:40:12,060 INFO  - Service 'ConsoleApp1Service (ConsoleApp1Service)' was installed successfully.
2024-10-14 10:40:13,335 DEBUG - Starting WinSW in service mode
2024-10-14 10:40:13,720 INFO  - Starting C:\ConsoleApp1Service\ConsoleApp1.exe 
2024-10-14 10:40:13,787 INFO  - Started process 4072
2024-10-14 10:40:13,822 DEBUG - Forwarding logs of the process System.Diagnostics.Process (ConsoleApp1) to WinSW.RollingLogAppender

原程序标准输出日志:ConsoleApp1Service.out.log

该程序每秒输出一次时间到终端标准输出

2024-10-14 10:40:13
2024-10-14 10:40:14
2024-10-14 10:40:15
2024-10-14 10:40:16
2024-10-14 10:40:17
2024-10-14 10:40:18
2024-10-14 10:40:19
2024-10-14 10:40:20
2024-10-14 10:40:21

原程序错误输出日志:ConsoleApp1Service.err.log

由于没有运行错误,程序也没有向标准错误输出,因此是空文件。

PS C:\ConsoleApp1Service> cat .\ConsoleApp1Service.err.log
PS C:\ConsoleApp1Service>

服务状态

可以看到服务程序是SYSTEM用户启动,工作在会话ID=0中


http://www.ppmy.cn/embedded/128206.html

相关文章

HttpClient的基本使用【IDEA版】

对于后端开发来说&#xff0c;常见的接口测试工具有Postman和Swagger或与二者同类型的工具&#xff0c;但是二者有一定的弊端或者说不方便。 Postman需要额外安装&#xff0c;且保存接口的时候需要注册登录账户&#xff0c;再者测试接口的时候需要将url及数据等同步迁移&#x…

Java笔记Day42:初入六六村!(springMVC前后端不同数据类型传值)

1.前端传参方式: 1.url传参&#xff1a; 数据参数直接写在url地址中&#xff0c;一般使用get请求。 使用params传输的就是url类型的参数&#xff1b; &#xff08;params 参数通常用于发送 URL 查询参数。 这些参数会附加到请求的 URL 中&#xff0c; 并以 keyvalue 的形…

人脸识别-特征算法

文章目录 一、LBPH算法1.基本原理2.实现步骤3.代码实现 二、Eigenfaces算法1.特点2.代码实习 三、FisherFaces算法1.算法原理2.算法特点3.代码实现 四、总结 人脸识别特征识别器是数字信息发展中的一种生物特征识别技术&#xff0c;其核心在于通过特定的算法和技术手段&#xf…

运行Springboot + Vue 项目

前言&#xff1a;很多小白拿到java SpringBoot Vue前后端分离的项目却不知道怎么运行起来&#xff0c;这里博主就带领小白们一起将项目运行起来吧&#xff01; 一、环境准备 java后端软件&#xff1a;Idea、jdk、mysql、Navicat&#xff08;可用其他代替&#xff0c;如dbea…

Python 文件 I/O 入门指南

Python 文件 I/O 入门指南 文章目录 Python 文件 I/O 入门指南一、文件的打开与关闭二、文件的读取三、文件的写入四、文件的定位五、文件的属性六、处理不同类型的文件七、错误处理八、总结 在 Python 编程中&#xff0c;文件输入输出&#xff08;I/O&#xff09;是一项非常重…

[JAVAEE] 线程安全问题

目录 一. 什么是线程安全 二. 线程安全问题产生的原因 三. 线程安全问题的解决 3.1 解决修改操作不是原子性的问题 > 加锁 a. 什么是锁 b. 没有加锁时 c. 加锁时 d. 死锁 e. 避免死锁 3.2 解决内存可见性的问题 > volatile关键字 (易变的, 善变的) a. 不加…

STM32 ADC实例解析(1)-寄存器方式

文章目录 一、寄存器列表二、示例代码三、总结优点&#xff1a;缺点&#xff1a; 在很长的一段时间里我在项目中都是使用寄存器方式 一、寄存器列表 __IO uint32_t SR&#xff1b;/&#xff01;< ADC状态寄存器&#xff0c;地址偏移量&#xff1a;0x00 / __IO uint32_t CR1…

如何在算家云搭建PhotoMaker(图像生成)

一、PhotoMaker简介 PhotoMaker是一种高效、个性化的文本转图像生成方法&#xff0c;能通过堆叠 ID 嵌入自定义的逼真人类照片。相当于把一张人类照片的特征提取出来&#xff0c;然后生成你想要的不同风格照片&#xff0c;如写真等等。 主要特点&#xff1a; 在几秒钟内快速…