跳到主要内容

Windows将FRP设置为服务并开机自启3-new

### 1.此处需要使用到winsw 下载地址: <https://github.com/kohsuke/winsw/releases>

### 2.下载解压至任意目录并CD进入;

![d91bb76fd9fa75f54f348e90d3c8f941.png](resources/8FACF3BCE82137F332513D3A2420B3E5.png)
![[resources/8FACF3BCE82137F332513D3A2420B3E5.png]](assets/resources/8FACF3BCE82137F332513D3A2420B3E5.png)

### 这里将下载WinSw.Net4.exe重命名为winsw.exe了,以方便后面操作;

### 3.创建与winsw同名的配置文件,后缀为xml

### 此处以配置FRP客户端为例:

  1. <service>
  2. <!-- 该服务的唯一标识 -->
  3. <id>frp</id>
  4. <!-- 该服务的名称 -->
  5. <name>frp0.27.1-windows-amd64</name>
  6. <!-- 该服务的描述 -->
  7. <description>frpc客户端 这个服务用 frpc 实现内网穿透</description>
  8. <!-- 要运行的程序路径 -->
  9. <executable>D:\Software\frp\frp_0.27.1_windows_amd64\frpc.exe</executable>
  10. <!-- 携带的参数 -->
  11. <arguments>-c frpc.ini</arguments>
  12. <!-- 第一次启动失败 60秒重启 -->
  13. <onfailure action="restart" delay="60 sec"/>
  14. <!-- 第二次启动失败 120秒后重启 -->
  15. <onfailure action="restart" delay="120 sec"/>
  16. <!-- 日志模式 -->
  17. <logmode>append</logmode>
  18. <!-- 指定日志文件目录(相对于executable配置的路径) -->
  19. <logpath>logs</logpath>
  20. </service>

### 4.开始使用

  1. //注册服务
  2. winsw.exe install
  3. //卸载服务
  4. winsw.exe uninstall
  5. //启动服务
  6. winsw.exe start
  7. //停止服务
  8. winsw.exe stop
  9. //重启服务
  10. winsw.exe restart
  11. //查看状态
  12. winsw.exe status

### ![](resources/B55F5773407AC131BF986865347E1729.png)
![[resources/B55F5773407AC131BF986865347E1729.png]](assets/resources/B55F5773407AC131BF986865347E1729.png)

### 5.不出意外的话打开任务管理器就能看到刚刚添加的服务了

![c7b2e47de56b2e31b665d2169c7d6e9c.png](resources/F0DC07FE3B36D34158377ABEF90142A4.png)
![[resources/F0DC07FE3B36D34158377ABEF90142A4.png]](assets/resources/F0DC07FE3B36D34158377ABEF90142A4.png)

从服务里面看 可执行文件的路径是:"D:\\Software\\frp\\frp\_0.27.1\_windows\_amd64\\winsw"

实际是 winsw.xml 中 executable 中的路径 不影响功能

注意事项:1.注册服务时如果被某60拦截了需要点允许,如果提示:FATAL - WMI Operation failure: AccessDenied 则需要以管理员方式运行CMD再试;

2.中间遇到了另外一个错误但是忘记截图了;

就是创建xml文件的时候不能用window自带的新建去创建winsw.xml文件,用EditPlus或者其他编辑器软件创建的xml才能正确解析