为了运行一个应用程序,必须启动一个批处理文件(诸如“启动码头”,“显示实时日志”之类的事情)。仅当此批处理文件运行时,该应用程序才能工作。因此,我被迫运行此批处理文件,而不是从Windows Server登录。
可以作为服务运行此批处理文件吗?我正在尝试一个类似问题的建议之一。 NSSM开始=需求意味着您必须自己启动服务。选项包括:引导,系统,自动,需求,残疾人,延迟 - 自动 需要whitespace
=
我确实遇到了服务启动的错误,即服务没有及时响应,但是很明显,服务成功地运行了.bat。尚未挖掘此操作,但是此thread
经历了同样的事情,并使用NSSM安装服务解决了它。注意,您还必须设置程序以运行“用户是否登录”,否则该程序仍将在前景中运行。
:: This must be run in a cmd instance, PowerShell throws an error stating "A positional parameter cannot be found that accepts argument 'DisplayName='
:: Also note: The spaces behind the '=' are required.
sc create minecraft-server DisplayName= "minecraft-server" binpath= "cmd.exe /C C:\Users\Administrator\Desktop\rungui1151.lnk" type= own start= auto
java -Xmx40960M -Xms40960M -d64 -jar minecraft_server.1.15.1.jar
所有这个是因为:
服务不知道如何在文件夹中启动,
开始服务将产生“及时的方式”错误,但日志文件显示服务器正在运行。
如果您需要关闭服务器,只需进入任务管理器并在背景过程中找到服务器Java并结束它,或使用 /stop命令或其他程序 /服务器从游戏中终止服务器,请使用与服务器相关的方法。
由于不再维护NSSM,您可以考虑使用
Winsw
。它的二进制文件可以在有或没有.net的情况下使用。基本上,您可以创建一个XML文件,然后安装它。这是最小XML的样本:
<service>
<!-- ID of the service. It should be unique across the Windows system-->
<id>myapp</id>
<!-- Path to the executable, which should be started -->
<!-- CAUTION: Don't put arguments here. Use <arguments> instead. -->
<executable>%BASE%\myExecutable.exe</executable>
</service>
winsw install myapp.xml
winsw start myapp.xml
尽管它不是免费的(但39美元),但Firedaemon
对我来说效果很好,我必须推荐它。它将运行您的批处理文件,但具有大量额外且非常有用的功能,例如计划,服务监视,GUI或基于XML的服务,依赖关系,环境变量和日志管理。I开始使用Firedaemon启动JBOSS应用程序服务器(
如果您有大量的Windows服务器可以管理此服务(或技术上的任何服务),则可能需要查看的一个超级firedaemon。
Doug Currie说使用RunAsservice。从我过去的经验中,您必须记住,您产生的服务将会
完全不同的环境变量集
未经仔细检查权利/许可问题
确定最后一个是否仍然适用……这是我一段时间以前从事的一个项目中的一个大夜母马。
安装NSSM并将.bat文件作为Windows服务运行。 如预期的那样工作
my最简单的方法是使用opensourceSvcbatchhttps://github.com/mturk/svcbatch/svcbatch/
)作为cmd(bat)的包装:Sc创建myService binpath =“”%cd%\ svcbatch.exe“ myService.bat”