平常PHP写的脚本和GO编译出来的程序在Windows平台cmd命令行运行会出现一个大黑框 还不能关闭,碍眼不说,关键不能开机自启;
其实Windows也能像Linux那样设置程序为后台运行,就是将其添加为服务;
此处需要使用到winsw 下载地址: https://github.com/kohsuke/winsw/releases
下载解压至任意目录并CD进入;
这里将下载WinSw.Net4.exe重命名为winsw.exe了,以方便后面操作;
创建与winsw同名的配置文件,后缀为xml
此处以配置FRP客户端为例:
<service> <!-- 该服务的唯一标识 --> <id>frp</id> <!-- 该服务的名称 --> <name>frp0.27.1-windows-amd64</name> <!-- 该服务的描述 --> <description>frpc客户端 这个服务用 frpc 实现内网穿透</description> <!-- 要运行的程序路径 --> <executable>D:\Software\frp\frp_0.27.1_windows_amd64\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.exe install //卸载服务 winsw.exe uninstall //启动服务 winsw.exe start //停止服务 winsw.exe stop //重启服务 winsw.exe restart //查看状态 winsw.exe status
注册服务时如果被某60拦截了需要点允许,如果提示:FATAL - WMI Operation failure: AccessDenied 则需要以管理员方式运行CMD再试;
不出意外的话打开任务管理器就能看到刚刚添加的服务了
从服务里面看 可执行文件的路径是:"D:\Software\frp\frp_0.27.1_windows_amd64\winsw"
实际是 winsw.xml 中 executable 中的路径 不影响功能
转载请注明本文标题和链接:《 Windows将FRP设置为服务并开机自启 》
网友评论 2
@admin: