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

时间: 2024-10-14 13:34:27

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

将bat批处理文件注册成windows服务

C:\Users\lenovo>sc create MyService binPath= "C:\Program Files\restartOracle.bat"  type= share start= auto displayname= "AutoStartOracle Services"[SC] CreateService 成功 C:\Users\lenovo>services.msc C:\Users\lenovo>sc help sc qu

将绿色版Tomcat/Nginx注册成服务,实现开机自启动

我们常用的Tomcat,不管是在windows下还是linux下基本上都是绿色版本,解压.启动后直接使用.这就产生了一个问题,不能开机自自动,很不方便,linux下可以添加到/etc/rc.local实现开机自启,windows下也可以添加到开机启动项里:不过注册为系统服务更加方便一些,这里记录一下方法. 检查系统环境 确保64位的操作系统下是64位的Jdk 1 2 3 4 F:>java -d64 -version java version "1.7.0_80" Java(TM

Windows server 2016 部署 PKI 和证书服务

在Windows server 2016操作系统中,想要安装证书服务需要满足的条件有:1.有固定的IP地址:2.域环境(不是必须,只是域环境安装完证书服务之后不需要自己手动添加证书服务)3.尽量使用两台服务器(dc1.dc2).在Windows server 2016操作系统中,证书服务不是Windows 默认服务,需要在系统安装完成后手动添加证书服务,DC1具体操作步骤如下:1.打开"服务器管理器"单击"添加角色和功能"2.在"开始之前"窗口中

如何在Windows Server 2008 R2下搭建FTP服务

在Windows Server 2008 R2下搭建FTP服务,供客户端读取和上传文件 百度经验:jingyan.baidu.com 工具/原料 Windows Server 2008 R2 百度经验:jingyan.baidu.com 方法/步骤 1 安装FTP服务 开始-->管理工具-->服务器管理器 步骤阅读 2 安装IIS/FTP角色 打开服务器管理器,找到添加角色,然后点击,弹出添加角色对话框,选择下一步 步骤阅读 3 选择Web服务器(IIS),然后选择FTP服务,直到安装完成.

Windows Server 2008R2 设置SMTP邮件转发服务

最近因业务需求在Windows Server 2008R2server上设置SMTP转发服务,主要是在业务审批过程中邮件通知相关人员审批情况, 1.在server上加入服务 2.打开服务 3.新建一个SMTP.过程简单,省略了,下面是配置截图. 4.同意匿名通过 5.能够全部连接 6.仅下面地址能够使用转发,须要自己加入. 7.各种限制 8.參数设置 9.安全设置,匿名,能够选用Windows用户,自己在查查其它文档 10.默认25port 11.默认的域名.新建SMTP时候填写的. 12.默认

Windows Server 2012之活动目录域服务的卸载

2012-07-11 06:27:35 标签:Windows Server 2012 活动目录域服务 卸载 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://ycrsjxy.blog.51cto.com/618627/926716 由于Windows Server 2012不再支持Dcpromo,对于活动目录域服务的卸载,我们可以在图形状态下进行,或者通过PowerShell脚本进行. 一.图形状态. 1.选择“管理”菜单下的“

把解压缩版的tomcat6注册成服务并设置自启动

操作步骤: 1.在“开始 ”→“运行 ”中输入cmd 命令,进入MS-DOS界面 2.cd 到tomcat的bin目录下 C:/> cd tomcat/bin 3.运行命令service install, 就可以把tomcat注册成系统服务了 c:/tomcat/bin> service install 运行命令service uninstall,就可以删除服务. c:/tomcat/bin> service uninstall 当然,这样注册出来的服务启动类型是手动的:若想设置为开机自

windows下安装Redis并部署成服务

一:下载 下载地址: windows版本: https://github.com/MSOpenTech/redis/releases Linux版本: 官网下载: http://www.redis.cn/ git下载 https://github.com/antirez/redis/releases 我们现在讨论的是windows下的安装部署,目前windows下最新版本是:3.2.100.下载地址,提供多种下载内容,Redis-x64-3.2.100.msi是在windows下,最简单的安装文

Windows Server 2008 R2 可能会碰到任务计划无法自动运行的解决办法

在做Windows Server 2008R2系统的计划任务时使用到了bat脚本,手动启动没问题,自动执行缺失败,代码:0x2. 将"操作"的"起始于"进行设置了bat脚本的目录即可.