0

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

asadmin 起始域 domain1

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

净启动域1

sc 启动域 1

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

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

4

4 回答 4

0

安装:

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
于 2013-11-02T22:23:05.720 回答
0

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

@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
)
于 2013-11-02T22:56:44.200 回答
0

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

    @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

于 2015-06-10T17:19:54.260 回答
0

在记事本中键入以下代码并保存 [name].bat(适用于 windows)

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

于 2020-09-24T03:48:40.220 回答