Windows 服务注册实现开机自启动。

第一种是通过启动文件夹方式,具体如下:

  1. 编写 bat 脚本
  2. 复制到 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup 路径下

此方式有个问题是:并不是系统启动就执行,而是需要用户登录后才执行。

第二种是将程序注册为服务,目前使用的是 WinSW 实现,具体用法如下:

  1. 下载可执行程序,一般下载 64 位的 zip 包

  2. 编写启动服务的 xml,例如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    <service>
      <id>frpc</id>
      <name>frpc</name>
      <description>frpc service</description>
      <executable>D:\software\frp\frpc.exe</executable>
      <arguments>-c D:\software\frp\frpc.ini</arguments>
      <log mode="reset"></log>
      <logpath>D:\software\frp\logs</logpath>
    </service>
    
  3. 执行命令进行服务注册及启动

    1
    2
    3
    4
    5
    6
    7
    8
    
    # 服务注册
    .\WinSW.exe install .\frpc.xml
    
    # 服务启动
    .\WinSW.exe start .\frpc.xml
    
    # 服务状态
    .\WinSW.exe status .\frpc.xml