none
scコマンドは同期?非同期? RRS feed

  • 質問

  • お世話になっております。
    現在、コマンドからサービスの落とし上げを行うバッチを作成中です。
    サービスの操作を行うコマンドとして、SCコマンドを発見したのですが、このコマンドは同期的に動くのか、非同期に動くのか教えてください。
    また、非同期でしたら、どのようなコマンドを使えばよいか、合わせて教えてください。

    よろしくお願いします。

    2009年7月23日 11:19

回答

  • サービス制御は Service Control Manager が代理で実行するので、sc  stopは「終わらせて」と言ったきりで完全には終わり
    を待たない可能性は高いですね。

    WMI 経由で Win32_Service からサービスを探して状態を取る事で vbs ないしは PowerShell でサービス状態が停止になる
    まで待つ処理を入れた方が確実かもしれません。


    Kazuhiko Kikuchi
    • 回答としてマーク sk7474 2009年8月13日 7:10
    2009年7月24日 0:45
  • net stop サービス名
    net start サービス名
    だと同期だったような…。
    • 回答としてマーク sk7474 2009年8月13日 7:10
    2009年7月24日 11:46

すべての返信

  • もう少し質問内容を具体化すると、

      (1) SC STOP サービス名
      (2) SC START サービス名

    のようにコマンドを発行した場合、(2)のサービスの起動に失敗するケースが発生しています。
    現象からすると(1)の停止コマンドが完了する前に(2)の開始コマンドが実行されているのでは
    ないかと推定しているのですが、このことの技術的な裏づけ情報を得たいため質問したものです。
    どうぞよろしくお願いいたします。

    2009年7月24日 0:23
  • サービス制御は Service Control Manager が代理で実行するので、sc  stopは「終わらせて」と言ったきりで完全には終わり
    を待たない可能性は高いですね。

    WMI 経由で Win32_Service からサービスを探して状態を取る事で vbs ないしは PowerShell でサービス状態が停止になる
    まで待つ処理を入れた方が確実かもしれません。


    Kazuhiko Kikuchi
    • 回答としてマーク sk7474 2009年8月13日 7:10
    2009年7月24日 0:45
  • net stop サービス名
    net start サービス名
    だと同期だったような…。
    • 回答としてマーク sk7474 2009年8月13日 7:10
    2009年7月24日 11:46
  • こんにちは。中川俊輔です。

    kazukさん、佐祐理さん、回答ありがとうございます。

    masa4484さん、フォーラムのご利用ありがとうございます。
    その後いかがでしょうか?皆様のアドバイスで問題は解決しましたか?
    有用な情報と思われたため、kazukさん、佐祐理さんの回答へ回答マークをつけさせていただきました。

    今後ともフォーラムをよろしくお願いします。
    それでは!
    マイクロソフト株式会社 フォーラム オペレータ 中川 俊輔
    2009年8月13日 7:13