繁体   English   中英

如何使用将暂停执行直到域启动的批处理文件在 Windows 中启动 Glassfish 服务?

[英]How to start Glassfish service in Windows using batch file that will pause execution untill domain is started?

此时我正在使用下面的命令作为我的批处理脚本的一部分来引导 domain1:

asadmin 起始域 domain1

但是我最近将 domain1 作为服务安装,所以现在当我使用这个命令时,域是在我的用户进程下启动的,而不是作为服务启动。 所以在我注销后,域就消失了。 我用了:

净启动域1

sc 起始域 1

然而,一旦信号[或其他任何东西]被派往服务,这两个似乎都会返回,并且它们不会等到域1实际启动。 “asadmin start-domain”在启动域后确实返回了...

我必须在我的脚本中等待,在域启动后不久我将取消部署/部署新应用程序。 那么有没有办法使用批处理命令将 Glassfish 作为服务启动并等待它启动?

安装:

sc create ServiveName binpath= <PATH_TO_SERVICE>.exe
net start ServiveName 
PAUSE

开始:

net start ServiceName
PAUSE

停止:

net stop ServiceName
PAUSE

卸载:

net stop ServiceName
sc delete ServiceName
PAUSE

我正在使用的解决方案之一:

@echo off
SETLOCAL enableextensions enabledelayedexpansion
set GLASSFISH_HOME=c:\glassfish
set DOMAIN=domain1
net start %DOMAIN%
:loop
call timeout /t 1 /NOBREAK > NUL
echo Still waiting for domain to start
for /f "tokens=1,2 delims= " %%A IN ( '"%GLASSFISH_HOME%\bin\asadmin.bat" list-domains' ) DO IF "%%A"=="%DOMAIN%" SET GLASSFISH_RUNNING=%%B
if not "%GLASSFISH_RUNNING%"=="running" (
    goto loop
)

为了更好的理解,我稍微修改了上面的版本:

    @echo off
SETLOCAL enableextensions enabledelayedexpansion
set GLASSFISH_HOME=D:\glassfish
set DOMAIN=domainName
set SERVICE_NAME="name of your service"
net start %SERVICE_NAME%
:loop
call timeout /t 1 /NOBREAK > NUL
echo Still waiting for domain to start
for /f "tokens=1,2 delims= " %%A IN ( '"%GLASSFISH_HOME%\bin\asadmin.bat" list-domains' ) DO IF "%%A"=="%DOMAIN%" SET GLASSFISH_RUNNING=%%B
if not "%GLASSFISH_RUNNING%"=="running" (
    goto loop
)

一些应用程序已经提供了自动创建 Windows 服务的可能性。 但是,每个 .exe 都可以通过这种方式进行配置。

图形用户界面: http : //www.sevenforums.com/tutorials/2495-services-start-disable.html
控制台: https : //support.microsoft.com/de-de/kb/137890
登录前自动启动: https : //serverfault.com/questions/227862/run-a-program-without-user-being-logged-on

在记事本中输入以下代码并保存 [name].bat(对于 Windows)

cd C:\\glassfish3\\glassfish3\\bin asadmin start-domain PAUSE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM