通过 winsw 将java项目配置windows自启动
winsw 项目地址
https://github.com/winsw/winsw
使用 WinSW 作为全球工具
- 从分发版中获取WinSW.exe或WinSW.zip 。
- 编写myapp.xml(有关更多详细信息,请参阅XML 配置文件规范和示例)。
- 运行winsw install myapp.xml [options]以安装服务。
- 运行winsw start myapp.xml以启动该服务。
- 运行winsw status myapp.xml以查看您的服务是否已启动并正在运行。
使用 WinSW 作为捆绑工具
- 从发行版中获取WinSW.exe或WinSW.zip ,然后根据您的喜好重命名.exe(例如myapp.exe)。
- 编写myapp.xml(有关更多详细信息,请参阅XML 配置文件规范和示例)。
- 将这两个文件并排放置,因为这是 WinSW 发现其相关配置的方式。
- 运行myapp.exe install [options]以安装服务。
- 运行myapp.exe start以启动该服务。
配置文件详解
1 | <service> |
id
必需 指定 Windows 内部用来识别服务的 ID。此 ID 在系统中安装的所有服务中必须是唯一的,并且应完全由字母数字字符组成。
name
可选 服务的简短显示名称,可以包含空格和其他字符。此名称不应太长,例如<id>,并且必须在给定系统的所有服务中保持唯一
description
可选的 较长且易于理解的服务描述。选择服务后,该描述将显示在 Windows 服务管理器中。
env
如果需要指定要为子进程设置的环境变量,可以多次指定此可选元素。语法为:
1 | <env name="HOME" value="c:\abc" /> |
executable
必需 此元素指定要启动的可执行文件。它可以是绝对路径,也可以只指定可执行文件名称并让其从中进行搜索PATH(但请注意,服务通常在不同的用户帐户中运行,因此它可能与PATH您的 shell 不同。)
interactive
如果指定了此可选元素,则允许服务与桌面交互,例如显示新窗口和对话框。如果您的程序需要 GUI,请按如下方式设置它:
1 | <interactive>true</interactive> |
arguments
可选 元素<arguments>指定要传递给可执行文件的参数。
1 | <arguments>arg1 arg2 arg3</arguments> |
log
startmode
可选 此元素指定 Windows 服务的启动模式。它可以是以下值之一:Automatic 或 Manual。有关更多信息,请参阅ChangeStartMode 方法。默认值为Automatic。
delayedAutoStart
可选Automatic如果定义了启动模式, 则此布尔选项启用延迟启动模式。有关更多信息,请参阅启动过程和延迟自动启动。
请注意,此启动模式不会对 Windows 7 和 Windows Server 2008 之前的旧 Windows 版本生效。在这种情况下,Windows 服务安装可能会失败。
1 | <delayedAutoStart>true</delayedAutoStart> |
depend
可选 指定此服务所依赖的其他服务的ID。当服务X依赖于服务时Y,X只有Y正在运行才能运行。
可以使用多个元素来指定多个依赖项。
1 | <depend>Eventlog</depend> |
本地系统帐户
要明确使用LocalSystem 帐户,请指定以下内容:
1 | <serviceaccount> |
请注意,此帐户没有密码,因此任何提供的密码都会被忽略。
本地服务帐户
要使用LocalService 帐户,请指定以下内容:
1 | <serviceaccount> |
请注意,此帐户没有密码,因此任何提供的密码都会被忽略。
网络服务帐户
要使用NetworkService 帐户,请指定以下内容:
1 | <serviceaccount> |
工作目录
某些服务需要在指定的工作目录下运行。为此,请指定
1 | <workingdirectory>C:\application</workingdirectory> |
