Skip to the content.

WinSW

Windows Service Wrapper,简称WinSW,可用于管理windows上的服务

github地址 https://github.com/winsw/winsw

安装服务 winsw install myapp.xml
启动服务 winsw start myapp.xml
查看服务状态 winsw status myapp.xml

命令

# 安装
winsw install [<path-to-config>] [--no-elevate] [--user|--username <username>] [--pass|--password <password>]
# 卸载
winsw uninstall [<path-to-config>] [--no-elevate]
# 启动
winsw start [<path-to-config>] [--no-elevate]
# 停止
winsw stop [<path-to-config>] [--no-elevate] [--no-wait]
# 重启
winsw restart [<path-to-config>] [--no-elevate]
# 状态
winsw status [<path-to-config>]
# 刷新
winsw refresh [<path-to-config>] [--no-elevate]
# 定制
winsw customize -o|--output <output> --manufacturer <manufacturer>
# 绘制与服务关联的进程树
winsw dev ps [<path-to-config>] [-a|--all]
# 如果服务停止响应,则终止服务
winsw dev kill [<path-to-config>] [--no-elevate]
# 列出由当前可执行文件管理的服务
winsw dev list

用例

以frp为例,设置为开机启动

<service>
    <!-- 该服务的唯一标识 -->
    <id>frp</id>
    <!-- 该服务的名称 -->
    <name>frpc.exe</name>
    <!-- 该服务的描述 -->
    <description>frpc客户端 这个服务用 frpc 实现内网穿透</description>
    <!-- 要运行的程序路径 -->
    <executable>D:\frp\frpc.exe</executable>
    <!-- 携带的参数 -->
    <arguments>-c frpc.ini</arguments>
    <!-- 第一次启动失败 60秒重启 -->
    <onfailure action="restart" delay="60 sec"/>
    <!-- 第二次启动失败 120秒后重启 -->
    <onfailure action="restart" delay="120 sec"/>
    <!-- 日志模式 -->
    <logmode>append</logmode>
    <!-- 指定日志文件目录(相对于executable配置的路径) -->
    <logpath>logs</logpath>
</service>

使用 winsw.xml 这个名字,可在命令中省去指定config

可以通过任务管理器查看

也可使用 ./winsw.exe status 或者 ./winsw.exe dev list 查看