Windows Server下把BAT批处理注册成服务在后台运行且注销后能正常运行

Posted Jim

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows Server下把BAT批处理注册成服务在后台运行且注销后能正常运行相关的知识,希望对你有一定的参考价值。

批处理有如下特点:

1、登录到当前窗口运行时,如果关闭控制台会连同启动的程序一起关闭。

2、如果是以start /b的形式启动,那么同样也是在控制台关闭后者注销当前窗口也会一起关闭。

3、如果以vbs的形式启动,注销当前用户也会一起关闭。

有如下方式解决:

1、使用【任务计划】去启动批处理,里面有很多个触发点,可以选择【计算机启动时】触发也能达到开机启动的效果,而不用登录桌面。

2、有错误启动Windows Service方式,用【sc】命令注册服务,然后以cmd.exe的形式去启动(C:\\Windows\\System32\\cmd.exe /C C:\\Python34\\Scripts\\shadowsocks\\shadowsocks\\run.bat),但这种形式表面上是启动不成功服务,但是实质上在进程上已经有了python.exe这个进程存在,所以是成功启动的;而且这种形式是不能停止或重启这个服务。

3、使用【Bat_To_Exe_Converter】这个软件将bat转换成exe程序,然后用【sc】或者【srvinstw.exe】把这个exe注册进服务,如果是python的程序同样会面临第2步的问题,但是如果你启动的是别的,很可能会成功;还有一个问题,这个转换的程序在执行转换后的exe时会在临时文件夹下产生一个【b2e.exe】的进程,我猜测这个是执行bat的基础,但是里面具体干了什么不得而知,如果想使用,请慎重!

下载地址:http://www.jb51.net/article/20270.htm

4、终极解决方法,使用nssm程序

ssm install <servicename>

然后在服务列表即可启动,这个程序对bat注册成服务非常不错,比上面三种方式靠谱。

 

参考:

http://stackoverflow.com/questions/415409/run-batch-file-as-a-windows-service

以上是关于Windows Server下把BAT批处理注册成服务在后台运行且注销后能正常运行的主要内容,如果未能解决你的问题,请参考以下文章

如何将bat发布为Windows服务

Spring Boot项目生成jar包,并在windows服务器中注册成服务,开机启动

Java Tomcat 注册为Windows系统服务

使用nssm将命令行启动的应用程序(.exe,.bat等)注册成windows后台服务

将bat文件或exe程序注册成windows服务

将windows server 2008设置成ntp时间同步服务器.bat