前言 {#%E5%89%8D%E8%A8%80}
我们使用windows系统的电脑的时候,可能会遇到这么一种情况:想把一些应用程序添加为开机启动项。
本文示例使用是把一个exe程序注册为服务,同样的jar程序或者其他程序方法是通用的。
方式一 {#%E6%96%B9%E5%BC%8F%E4%B8%80}
使用winsw来注册Windows服务
下载 {#%E4%B8%8B%E8%BD%BD}
下载完之后最好把文件改成一个比较短小的名字,例如:WinSW.exe 方便后面输入命令时使用。
修改配置文件 {#%E4%BF%AE%E6%94%B9%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6}
我们需要编写一个和程序同名的XML文件作为WinSW的配置文件
winsw.xml
<service>
<id>elm</id>
<name>饿了么</name>
<description>饿了么自动任务,自动兑换。</description>
<executable>elm.exe</executable>
<arguments>-debug</arguments>
<logmode>reset</logmode>
</service>
配置项说明 {#%E9%85%8D%E7%BD%AE%E9%A1%B9%E8%AF%B4%E6%98%8E}
id {#id}
指定在Windows系统内部使用的识别服务的ID。在系统中安装的所有服务中,这必须是唯一的,它应该完全由字母数字字符组成。
name {#name}
服务的简短名称,它可以包含空格和其他字符。尽量简短,就像"id"一样,在系统的所有服务名称中,也要保持唯一。
description {#description}
该服务可读描述。当选中该服务时,它将显示在Windows服务管理器中。
executable {#executable}
该元素指定要启动的可执行文件。它可以是绝对路径,也可以指定可执行文件的名称,然后从环境变量"PATH"中搜索(需要注意的是,服务经常在不同的用户账户中运行,因此它可能需要有不同于你设置在环境变量Path中的路径)。
argument {#argument}
该元素指定要传递给可执行文件的参数。
如果有必要,Winsw会给每一个参数外加引号(""),所以为了避免双重引号,尽量不要在参数中使用引号。
logmod {#logmod}
<logmode>reset</logmode>
截断,每次重启都会清空之前日志
logmode官方参考
注册服务 {#%E6%B3%A8%E5%86%8C%E6%9C%8D%E5%8A%A1}
注册成功 {#%E6%B3%A8%E5%86%8C%E6%88%90%E5%8A%9F}
常用命令 {#%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4}
| Command | Description | |-----------------------------------------------------|-------------| | install | 注册服务 | | uninstall | 卸载服务 | | start | 启动服务 | | stop | 关闭服务 | | restart | 重启服务 | | status | 查看状态 |
xml配置官方参考 {#xml%E9%85%8D%E7%BD%AE%E5%AE%98%E6%96%B9%E5%8F%82%E8%80%83}
灵活变通 {#%E7%81%B5%E6%B4%BB%E5%8F%98%E9%80%9A}
方式二 {#%E6%96%B9%E5%BC%8F%E4%BA%8C}
使用nssm来注册Windows服务
下载 {#%E4%B8%8B%E8%BD%BD-1}
服务安装: {#%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%EF%BC%9A}
cmd窗口执行nssm install
弹出图形化界面
都是小学英语单词,我相信你们能看的明白。
填好之后点击 install service 按钮。
服务管理: {#%E6%9C%8D%E5%8A%A1%E7%AE%A1%E7%90%86%EF%BC%9A}
服务管理主要有启动、停止和重启,其命令如下:
启动服务: nssm start <servicename>
停止服务: nssm stop <servicename>
重启服务: nssm restart <servicename>
当然也可打开任务管理器的服务进行管理,或者系统服务来管理。