背景:
很多时候我们写了一些bat文件,都希望能开机自动化启动。 例如我们把Selenium Grid搭建在Win机器上,希望我们机器启动后我们的Selenium Grid相关的服务就能自动启起来。也许你会把Grid启动的命令写在bat文件中,然后放于Windows的startup里面,这样只要有用户登录win机器,bat文件就自动启动起来。但是这个得有用户登录上才行,所以急需服务化。
方案一:
- 下载微软的两个小工具 srvany.exe和instsrv.exe,这里提供百度网盘地址:https://pan.baidu.com/s/1bplNZAZ
- 打开控制台,执行如下命令:
C:\services>c:/services/instsrv.exe ServiceName c:/services/srvany.exe
其中 ServiceName为你自定义的服务名称。
- 开始 - 运行 - regedit 打开注册表,找到如下路径,ServiceName为第二部设置的服务名称:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName - 在该服务下新建Key ,取名为 Parameters。如果已经存在就不需要新建。
- 在创建好的 Parameters 下,创建3个String value。
- Application: 设置值为你要作为服务运行的程序地址。
- AppDirectory: 设置值为你要作为服务运行的程序所在文件夹路径。
- AppParameters: 设置值为你要作为服务运行的程序启动所需要的参数,如果不需要参数可以放空值
- 开始 - 输入:Services,打开Services 管理,找到你创建的ServicesName,右键属性,修改启动方式为Automatic,并启动。
- 方式二:
win 提供了Task Scheduler ,通过这个也可以很灵活的设置开机启动,而且同样不需要用户登录情况下启动。