Help us understand the problem. What is going on with this article?

Windowsのサービスの依存サービスを後から変更する

More than 1 year has passed since last update.

Windows ServerでTomcatサービスの依存サービスをscコマンドで変更したときのメモ。

Tomcatで動かすWebAppがローカルのSQL Serverに接続するアプリだったので、SQL Serverの起動後にTomcatを起動するよう設定したかった。

環境

  • Windows Server 2012 Standard
  • Tomcat 8.5.4 (Windowsインストーラ版)がインストール済 (サービス名はTomcat8)
  • SQL Server 2014 がインストール済(サービス名はMSSQL$DB)

手順

以下手順は管理者権限があるユーザで実施する。

Windows PowerShellを管理者として起動し、cmdを起動する。(サービス変更に使用するscコマンドはPower Shellからは実行できない)

PS C:\> cmd
Microsoft Windows [Version 6.2.9200]
(c) 2012 Microsoft Corporation. All rights reserved.

C:\>

現在のTomcatの依存サービスを確認。
依存サービスはDEPENDENCIESの値。以下よりTcpip、Afdが依存サービス。

C:\>sc qc Tomcat8
[SC] QueryServiceConfig SUCCESS

SERVICE_NAME: Tomcat8
        TYPE               : 10  WIN32_OWN_PROCESS
        START_TYPE         : 3   DEMAND_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : "C:\Tomcat 8.5\bin\Tomcat8.exe" //RS//Tomcat8
        LOAD_ORDER_GROUP   :
        TAG                : 0
        DISPLAY_NAME       : Apache Tomcat 8.5 Tomcat8
        DEPENDENCIES       : Tcpip
                           : Afd
        SERVICE_START_NAME : LocalSystem

sc configコマンドで依存サービスを変更する。
依存サービスは depend= で指定する。依存サービスは現在DENENDENCIESに登録されているサービスを含めて、スラッシュ区切りで指定する。
depend= と、指定するサービスの間にはスペースが必要な事に注意。(他のパラメータ指定でも同様)

C:\>sc config Tomcat8 depend= "Tcpip/Afd/MSSQL$DB"
[SC] ChangeServiceConfig SUCCESS

変更後の依存サービスを確認。MSSQL$DBがDEPENDENCIESに追加されている。

C:\>sc qc Tomcat8
[SC] QueryServiceConfig SUCCESS

SERVICE_NAME: Tomcat8
        TYPE               : 10  WIN32_OWN_PROCESS
        START_TYPE         : 3   DEMAND_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : "C:\Tomcat 8.5\bin\Tomcat8.exe" //RS//Tomcat8
        LOAD_ORDER_GROUP   :
        TAG                : 0
        DISPLAY_NAME       : Apache Tomcat 8.5 Tomcat8
        DEPENDENCIES       : Tcpip
                           : Afd
                           : MSSQL$DB
        SERVICE_START_NAME : LocalSystem

参考

sc configコマンドのhelp

C:\>sc config help
説明:
        レジストリおよびサービス データベースのサービス エントリを変更します。
使用法:
        sc <サーバー> config [サービス名] <オプション1> <オプション2>...

オプション:
注意: オプション名には等号が含まれています。
      等号と値の間にはスペースが必要です。
 type= <own|share|interact|kernel|filesys|rec|adapt>
 start= <boot|system|auto|demand|disabled|delayed-auto>
 error= <normal|severe|critical|ignore>
 binPath= <.exe ファイルへの BinaryPathName>
 group= <LoadOrderGroup>
 tag= <yes|no>
 depend= <依存関係 (スラッシュ (/) で区切られています)>
 obj= <AccountName|ObjectName>
 DisplayName= <表示名>
 password= <パスワード>
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away