数週間ごとに失敗する厄介なソフトウェアサービスがあります。 2つのコンポーネントがあります。サービスAとサービスB。サービスBが異常な状態になり、サービスAからの接続の受け入れを停止します。解決策は、両方のサービスを手動で再起動するか、サーバーを再起動することです。
AとBのサービスの再起動を定期的にスケジュールしたいと思います。 24時間ごとに発声します。それについてどうやって行くのですか?
コメントの提案に従って、タイムアウト付きの適切な再起動シーケンスを含むバッチファイルを作成しました。サービス間の依存関係のため、タイムアウトが必要でした。タスクスケジューラを使用して、毎晩午前4時に管理者として実行するようにスケジュールしました。
net stop "Service B"
net stop "Service A"
timeout /T 10
net start "Service B"
timeout /T 10
net start "Service A"
これは理想的ではありませんが、このシナリオ(10ユーザー未満のリモートデスクトップ展開)には適しています。
破損または欠落する可能性があるbatファイルを作成する代わりに、multipleアクションを使用してスケジュールされたタスクを作成できます。サービスを停止する1つのアクションと、サービスを再起動する別のアクション。どちらもNET
コマンドで実行されました。それらにSTOPおよびSTART引数を与え、その後にサービス名を続けます。
NET STOP "Service A"
NET START "Service A"
こちら 方法を説明するStackOverflowの投稿。
Net Stop "ServiceName" && Net Start "ServiceName"
そして、あなたは一緒に&&を停止/開始ServiceBのためにチェーンすることができます
Net Stop "ServiceA" && Net Start "ServiceA" && Net Stop "ServiceB" && Net Start "ServiceB"
Batファイルを作成して、bat内で次のようなことを試すことができます。
ネットストップ{serviceName}およびネットスタート{serviceName}
スケジュールされたタスクのプログラムとしてbatファイルを使用します。