当前位置: 首页 > news >正文

通过 winsw 把相关服务配置windows自启动

文章目录


在这里插入图片描述

描述

WinSW(Windows Service Wrapper)是一个开源工具,旨在帮助在Windows操作系统上将任意可执行文件作为Windows服务运行。它特别适用于那些本身不支持直接安装为Windows服务的应用程序。通过使用WinSW,用户可以更容易地管理这些应用程序的生命周期,包括启动、停止和监控等操作。

以下是WinSW的一些主要特点和功能:

  • 简化服务安装与卸载:通过简单的配置文件设置,即可轻松地将程序安装为Windows服务。
  • 灵活的日志选项:允许用户自定义日志记录方式,如将输出重定向到文件或标准输出/错误流。
  • 多种服务行为控制:提供了对服务失败后的重启策略、依赖项和服务状态检查等高级功能的支持。
  • 跨平台兼容性:虽然名为WinSW,但其.NET版本也支持在Linux和macOS上运行(需要Mono框架支持),不过主要用途还是在Windows平台上。
  • 与Java服务的集成:对于基于Java的应用程序,WinSW提供了一个专门的分支(winsw/java),以更好地支持这类应用的部署。
  • 要使用WinSW,你需要准备一个可执行文件以及一个XML格式的配置文件,该配置文件中包含了如何运行该服务的具体指令,比如服务名称、描述、可执行命令行等信息。之后,你可以使用WinSW提供的命令来安装、启动、停止或卸载服务。

winsw 项目地址

https://github.com/winsw/winsw

使用 WinSW 作为全球工具
  1. 从分发版中获取WinSW.exe或WinSW.zip 。
  2. 编写myapp.xml(有关更多详细信息,请参阅XML 配置文件规范和示例)。
  3. 运行winsw install myapp.xml [options]以安装服务。
  4. 运行winsw start myapp.xml以启动该服务。
  5. 运行winsw status myapp.xml以查看您的服务是否已启动并正在运行。
使用 WinSW 作为捆绑工具
  1. 从发行版中获取WinSW.exe或WinSW.zip ,然后根据您的喜好重命名.exe(例如myapp.exe)。
  2. 编写myapp.xml(有关更多详细信息,请参阅XML 配置文件规范和示例)。
  3. 将这两个文件并排放置,因为这是 WinSW 发现其相关配置的方式。
  4. 运行myapp.exe install [options]以安装服务。
  5. 运行myapp.exe start以启动该服务。

配置文件详解

<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>
id

必需 指定 Windows 内部用来识别服务的 ID。此 ID 在系统中安装的所有服务中必须是唯一的,并且应完全由字母数字字符组成。

name

可选 服务的简短显示名称,可以包含空格和其他字符。此名称不应太长,例如<id>,并且必须在给定系统的所有服务中保持唯一

description

可选的 较长且易于理解的服务描述。选择服务后,该描述将显示在 Windows 服务管理器中。

env

如果需要指定要为子进程设置的环境变量,可以多次指定此可选元素。语法为:

<env name="HOME" value="c:\abc" />
executable

必需 此元素指定要启动的可执行文件。它可以是绝对路径,也可以只指定可执行文件名称并让其从中进行搜索PATH(但请注意,服务通常在不同的用户帐户中运行,因此它可能与PATH您的 shell 不同。)

interactive

如果指定了此可选元素,则允许服务与桌面交互,例如显示新窗口和对话框。如果您的程序需要 GUI,请按如下方式设置它:

<interactive>true</interactive>
arguments

可选 元素<arguments>指定要传递给可执行文件的参数。

<arguments>arg1 arg2 arg3</arguments>
log
startmode

可选 此元素指定 Windows 服务的启动模式。它可以是以下值之一:Automatic 或 Manual。有关更多信息,请参阅ChangeStartMode 方法。默认值为Automatic。

delayedAutoStart

可选Automatic如果定义了启动模式, 则此布尔选项启用延迟启动模式。有关更多信息,请参阅启动过程和延迟自动启动。
请注意,此启动模式不会对 Windows 7 和 Windows Server 2008 之前的旧 Windows 版本生效。在这种情况下,Windows 服务安装可能会失败。

<delayedAutoStart>true</delayedAutoStart>
depend

可选 指定此服务所依赖的其他服务的ID。当服务X依赖于服务时Y,X只有Y正在运行才能运行。
可以使用多个元素来指定多个依赖项。

<depend>Eventlog</depend>
<depend>W32Time</depend>
本地系统帐户

要明确使用LocalSystem 帐户,请指定以下内容:

<serviceaccount><username>LocalSystem</username>
</serviceaccount>

请注意,此帐户没有密码,因此任何提供的密码都会被忽略。

本地服务帐户

要使用LocalService 帐户,请指定以下内容:

<serviceaccount><username>NT AUTHORITY\LocalService</username>
</serviceaccount>

请注意,此帐户没有密码,因此任何提供的密码都会被忽略。

网络服务帐户

要使用NetworkService 帐户,请指定以下内容:

<serviceaccount><username>NT AUTHORITY\NetworkService</username>
</serviceaccount>
工作目录

某些服务需要在指定的工作目录下运行。为此,请指定如下元素:

<workingdirectory>C:\application</workingdirectory>

相关文章:

  • package.json 里面出现 workspace:*,关于工作区的解释
  • 文献总结:NIPS2023——车路协同自动驾驶感知中的时间对齐(FFNet)
  • 时序逻辑电路——序列检测器
  • 如何提高单元测试的覆盖率
  • PC主板及CPU ID 信息、笔记本电脑唯一 MAC地址获取
  • 目标检测综述
  • 深度解析生成对抗网络:原理、应用与未来趋势
  • 三维点拟合平面ransac c++
  • MCP 协议:AI 世界的 “USB-C 接口”,开启智能交互新时代
  • 管家婆财贸ERP BB095.销售单草稿自动填充组合品明细
  • Python 的 pip 命令详解,涵盖常用操作和高级用法
  • Vue 3.0 Composition API 与 Vue 2.x Options API 的区别
  • (论文阅读)RNNoise 基于递归神经网络的噪声抑制库
  • 频率合成方法及其实现原理
  • 嵌入式linux架构理解(宏观理解)6ull学习心得---从架构理解到自写程序运行及自写程序开机自启动
  • 几个常用的快速处理服务器命令和故障排查
  • 每天学一个 Linux 命令(20):find
  • MySQL Limit 分页查询性能问题及优化方案
  • 配电监控DLT645电表数据 转EthernetIP项目案例
  • 2024年RIS SCI2区:自适应天鹰算法AAO,深度解析+性能实测
  • 案件发回重审,李在明参选韩总统之路再添波折
  • 五一假期上海口岸出入境客流总量预计达59.4万人,同比增约30%
  • 解放日报:硬科企业由此迈出“市场第一步”
  • 中央网信办:重点整治违规AI产品、利用AI制作发布谣言等突出问题
  • 莫名的硝烟|“我们最好记住1931年9月18日这个日子”
  • “80后”蒋美华任辽宁阜新市副市长