为了运行一个应用程序,必须启动一个批处理文件(执行启动Jetty,显示实时日志等操作)。仅当此批处理文件正在运行时,该应用程序才能运行。因此,我被迫运行此批处理文件,而不从Windows服务器注销。
该批处理文件可以作为服务运行吗?我正在尝试一个类似问题的建议之一。
为了运行一个应用程序,必须启动一个批处理文件(执行启动Jetty,显示实时日志等操作)。仅当此批处理文件正在运行时,该应用程序才能运行。因此,我被迫运行此批处理文件,而不从Windows服务器注销。
该批处理文件可以作为服务运行吗?我正在尝试一个类似问题的建议之一。
Answers:
NSSM是完全免费的,非常容易,以管理员身份运行命令提示符/终端:
nssm install "YourCoolServiceNameLabel"
然后将出现一个对话框,您可以选择要在哪里运行文件。
卸载
nssm remove "YourCoolServiceNameLabel"
nssm
在输入时提供所有必需的arg以避免弹出数据输入-我正在尝试使过程自动化?
为什么不简单地将其设置为计划在启动时运行的计划任务?
有一个内置的Windows cmd可以做到这一点:sc create。不像nssm那样花哨,但是您不必下载其他软件。
sc create "ServiceName" start= demand displayname= "DisplayName" binpath= [path to .bat file]
注意
=
虽然它不是免费的(但39美元),但是FireDaemon对我来说是如此出色,我不得不推荐它。它会运行您的批处理文件,但具有许多非常有用的附加功能,例如计划,服务监视,基于GUI或XML的服务安装,依赖项,环境变量和日志管理。
我开始使用FireDaemon启动JBoss应用程序服务器(run.bat),但是不久之后,我意识到FireDaemon配置功能的丰富性使我能够放弃批处理文件并在FireDaemon服务定义中重新创建其命令的意图。
还有一个称为Trinity的SUPER FireDaemon,如果您有大量Windows服务器来管理此服务(或从技术上讲,是任何服务),则可能要看一下。
在Windows 2019 Server上,您可以使用以下命令运行Minecraft Java服务器:
sc创建minecraft-server DisplayName =“ minecraft-server” binpath =“ cmd.exe /CC:\Users\Administrator\Desktop\rungui1151.lnk” type = own start = auto
.lnk文件是批处理文件的标准Windows快捷方式。
-.bat文件开始-
java -Xmx40960M -Xms40960M -d64 -jar minecraft_server.1.15.1.jar
-.bat文件结束-
这是因为:
服务不知道如何在文件夹中启动,
cmd.exe不知道如何在文件夹中启动
启动服务将产生“及时方式”错误,但是日志文件显示服务器正在运行。
如果您需要关闭服务器,只需进入任务管理器并在后台进程中找到服务器Java并结束它,或者使用/ stop命令从游戏中终止服务器,或者对于其他程序/服务器,请使用以下方法与服务器有关。