0

現在、ドメイン 1 を起動するバッチ スクリプトの一部として以下のコマンドを使用しています。

asadmin 開始ドメイン domain1

ただし、最近 domain1 をサービスとしてインストールしたので、このコマンドを使用すると、サービスとして起動するのではなく、ユーザー プロセスでドメインが起動します。そのため、ログアウトするとドメインがなくなります。私が使用した:

ネットスタートドメイン1

sc 開始 domain1

ただし、これらは両方とも、シグナル[またはその他のもの]がサービスにディスパッチされるとすぐに返されるように見え、ドメイン1が実際に開始されるまで待機しません。ドメインを起動した後、「asadmin start-domain」が返されました...

私のスクリプトでは、ドメインの開始直後に新しいアプリをアンデプロイ/デプロイしているので、待つ必要があります。バッチ コマンドを使用してサービスとして Glassfish を開始し、開始されるまで待機する方法はありますか?

4

4 に答える 4

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

于 2015-06-10T17:19:54.260 に答える
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 に答える