Windowsのサービスコントロールマネージャ(以下、SCM)へのサービスの登録の件です。
登録時に、「複数のプロセス」を「1つのサービス」として登録することはできますか?
たとえば、A.exe, B.exe, C.exeの3つのプログラムを依存関係(起動時の順序関係)を設定して
1つのサービスとして登録するイメージなのですが。
個人的にはサービス登録は難しいと思っています。
というのは、複数プロセスを1サービスとして登録すると
サービスの状態(起動してるか停止しているか)をうまく判定できない気がします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
サービス一つでそれをやろうとすると、A、B、Cの起動順序や死活監視を制御するようなヘルパーサービスプログラムH.exeを用意して、scで登録するのはH.exeという事になろうて。
この場合、AとBとCはサービスフレームワークではなく独自のデーモンとして開発する事になる。質問内容からABCは既にサービスフレームワークで開発されているように見受けられるので、上の対応は難しいと推測される。
A、B、Cそれぞれをサービス化して、サービス間の依存関係を設定するという事でよければできる。
A.exeサービスを起動するには先にB.exeサービスが起動してなくちゃいけなくって、B.exeサービスを起動するにはC.exeサービスが起動してなくちゃいけない、C.exeサービスを停止する時は勝手にB.exeサービスも停止する、B.exeサービスを停止する時は勝手にA.exeサービスも停止するという奴。
つまり、3つのexeで1つのサービスではなく、3つのexeで3つのサービスになり、3つのサービスフレームワークが協調動作を行う事で(サービスフレームワークの管理機構においてのみではあるが)サービス間の整合性を保つことができる。
C:\>sc create c_service binpath= "C:\opt\C.exe" displayname= "C Service" start= auto
C:\>sc create b_service binpath="C:\opt\B.exe" displayname= "B Service" start= auto depend= c_service
C:\>sc create a_service binpath="C:\opt\A.exe" displayname= "A Service" start= auto depend= b_service
コマンドライン引数のdependがミソで、こう指定する事により、ABC全部が停止している状態で
C:\>net start a_service
とすると、C、B、Aの順番にサービスが開始されるようになる。ABCが開始している状態で
C:\>net stop c_service
も同様にABCが順番に停止する。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- gooブログ Blogの使い方(ブログ・ユーザ設定について) 1 2022/04/23 12:40
- その他(クラウドサービス・オンラインストレージ) Microsoft Listと同じ使い方が出来るサービス 1 2022/11/21 09:01
- 知的財産権 商標権侵害による損害賠償について教えて下さい。 4 2023/05/13 11:25
- au(KDDI) auペイカード 1 2022/03/28 09:40
- ポイントサービス・マイル ポイントサイトなどの友達紹介で紹介相手が登録すると何かしら恩恵があるサービスで交換条件を出して登録さ 2 2022/03/26 22:33
- その他(IT・Webサービス) hi-bitの契約について 1 2023/05/04 21:48
- その他(SNS・コミュニケーションサービス) 強制退会とか、利用停止の経験 1 2023/06/13 20:36
- Gmail GoogleのGmailアカウントを削除について 3 2022/06/06 06:12
- au(KDDI) smash を使いたいのですが、私はソフトバンクユーザーです。 登録するにはauIDが必要なので、 2 2022/04/13 07:27
- その他(暮らし・生活・行事) マイナポイント第2段について質問です。 前回の第1段で 5000ポイントを受けとりました。 第2段で 3 2022/06/22 19:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WMIを有効にする方法が分かりま...
-
DNSサーバーの構築「no servers...
-
【Mac】crontab、ターミナルを...
-
起動時のターミナルの状態を戻...
-
namedが起動しない
-
WindowsからLinuxへの転送
-
テキストログインでstartxをし...
-
ldapクライアントサービスが有...
-
FTPでユーザ名の表示
-
インデザイン(InDesing)の開き...
-
Linuxのカーネルパニックについて
-
apacheが起動しない
-
httpd(Apache)でhttpsのポート...
-
vsftpdが停止しない
-
batファイルでのプログラム起動順
-
Let’s Encrypt の自動更新をcro...
-
サーバ起動時にある特定のユー...
-
linuxからのメールが文字化けと...
-
chkconfig がうまくいかない
-
FMVマイページ、FMVサーチが勝...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DNSサーバーの構築「no servers...
-
Linuxサーバーは定期リブートを...
-
apacheが起動しない
-
WMIを有効にする方法が分かりま...
-
geditについて
-
MacOSのLaunchAgentsってなんで...
-
インデザイン(InDesing)の開き...
-
linuxからのメールが文字化けと...
-
telnetd, sshdが動いているかど...
-
VNCクライアントから管理者権限...
-
AIXルーティング情報について
-
batファイルでのプログラム起動順
-
sambaのnmbが起動できない
-
rsh コマンドでのパスワード入...
-
FTPでユーザ名の表示
-
Linux(redhat系)の実行ユーザ...
-
CentOS7が起動したときGNOME起...
-
wermgr.exeって何ですか?
-
テキストログインでstartxをし...
-
Linuxで起動時に実行させるには?
おすすめ情報