此时我正在使用以下命令作为我的批处理脚本的一部分来启动domain1:
asadmin start-domain domain1
但是我最近安装了domain1作为服务,所以现在当我使用这个命令时,域是在我的用户进程下启动而不是作为服务启动。因此,在我注销后,域名就消失了。我用过:
net start domain1
和
sc start domain1
然而,一旦信号[或其他任何]被发送到服务,它们似乎都会返回,并且它们不会等待直到实际启动domain1。 “asadmin start-domain”确实在启动域后返回...
我必须等待在我的脚本中我在域启动后不久就取消部署/部署新应用程序。那么有没有办法使用批处理命令启动Glassfish作为服务并等待直到它被启动?
答案 0 :(得分: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
答案 1 :(得分: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
)
答案 2 :(得分: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都可以这样配置。
GUI: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
答案 3 :(得分:0)
在记事本中键入以下代码,然后保存[name] .bat(对于Windows)
cd C:\ glassfish3 \ glassfish3 \ bin asadmin起始域 暂停