.bat 文件在应用程序作为 Windows 服务执行时未运行

Posted

技术标签:

【中文标题】.bat 文件在应用程序作为 Windows 服务执行时未运行【英文标题】:.bat file not running when executed by app as windows service 【发布时间】:2021-09-11 03:35:31 【问题描述】:

所以,我有这个用第四维语言编写的客户端-服务器应用程序,它作为服务运行,因此如果服务器发生问题,它会自动重新启动。这种语言有一个内置功能,允许您运行 cmd 命令,并且我在同一个文件夹中有另一个 java 应用程序,负责发送电子邮件,这是我的服务器端应用程序无法处理的。我们使用一个命令从 cmd 运行这个 jar 并从那里发送参数,创建和 xml 为它创建一个 html 并通过电子邮件发送它。问题是当我在应用程序作为服务运行的情况下运行此命令时,该命令根本不会运行,但是,如果我正常运行应用程序,它就像魅力一样工作,没有任何问题。

起初我认为它可能是路径,所以我使用完整路径将所有路径都设置为绝对路径,但它仍然不起作用。此外,我尝试将命令导出为 bat 并手动运行它,在与服务器完全相同的路径中,它工作得很好。我认为该服务可能需要某种管理员权限,所以我从该服务以管理员身份启动它,但它没有任何改变。

服务是否存在某种限制,不允许应用执行外部命令?如果是这样,有没有办法绕过这个限制?

【问题讨论】:

【参考方案1】:

好吧,当它由服务运行时,我无法让它工作,所以我用服务使用的命令制作了一个蝙蝠并将其粘贴到 Windows 启动文件夹中,因此它在 Windows 启动时“手动打开”。这不是真正的答案,而是需要使用该服务的解决方法。

【讨论】:

以上是关于.bat 文件在应用程序作为 Windows 服务执行时未运行的主要内容,如果未能解决你的问题,请参考以下文章

Atitit.Java exe bat  作为windows系统服务程序运行

将BAT文件注册为服务的方法

在 Windows 窗体应用程序中集成 bat 文件

windows bat启动程序和监控程序自启动

windows bat启动程序和监控程序自启动

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