人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

動作中のプロセスを監視し、何らかの原因によりプログラムがダウンした場合、プログラムの再起動出来るフリーソフトを知りませんか??

●質問者: shotomo
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:フリーソフト プログラム プロセス 再起動 監視
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● HALSPECIAL
●60ポイント ベストアンサー

スクリプトを書いてみました。


1.監視実行するスクリプト

ソフトを起動して終了を監視します。

終了された場合は再起動します。

(ソフトの監視実行.vbs)というファイル名で保存

Option Explicit

Const SOFT = "C:\WINDOWS\system32\calc.exe"  '★監視&起動するソフト
Const RESTART_COUNT = -1  '★再起動をする回数 -1を設定すると無限

Const vbNormalFocus = 1  '通常のウィンドウ、かつ最前面のウィンドウ

Dim objWShell, count
Set objWShell = WScript.CreateObject("WScript.Shell")

count = 0
Do
 objWShell.Run SOFT, vbNormalFocus, True '実行と待機
 count = count + 1
 If RESTART_COUNT > -1 Then
 If RESTART_COUNT < count Then
 Exit Do
 End If
 End If
Loop

Set objWShell = Nothing

2.監視終了するスクリプト

監視するスクリプトを終了します。

(監視しているソフトは終了しません)

(ソフトの監視終了.vbs)というファイル名で保存

Option Explicit

Const WATCHER_VBS = "ソフトの監視実行.vbs"  '★停止する監視スクリプト名
Dim objLocator, objService
Set objLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer

Dim processName, colProcSet, objProc
Dim i, strTmp
'強制終了するプロセスを指定
processName = "wscript.exe"

Set colProcSet = objService.ExecQuery("Select * From Win32_Process Where Caption='" & processName & "'")
For Each objProc In colProcSet
 If InStr(objProc.CommandLine,WATCHER_VBS) > 0 Then
 objProc.Terminate
 End If
Next

'プロセスを終了させる
i = 10
Do
 strTmp = ""
 Set colProcSet = objService.ExecQuery("Select * From Win32_Process Where Caption='" & processName & "'")
 
 For Each objProc In colProcSet
 If InStr(objProc.CommandLine,WATCHER_VBS) > 0 Then
 strTmp = WATCHER_VBS
 End If
 Next
 
 If strTmp <> "" Then
 i = i - 1
 If i = 0 Then
 MsgBox "[" & WATCHER_VBS & "]を終了できませんでした。", vbCritical
 Wscript.Quit
 End If
 Wscript.Sleep 500
 Else
 Exit Do
 End If
Loop

MsgBox "[" & WATCHER_VBS & "]を終了しました。", vbInformation

★印の箇所を適宜、修正してください。


'参考 ぶりりあんとろーど(仮)

' ■[WSH]プロセスを強制終了させる

' http://d.hatena.ne.jp/haradago/20081031/p1




なお、[コントロールパネル]?[管理ツール]?[サービス]にあるプロセスの場合は、

サービスのプロパティの[回復]タブで、サービスの再起動の設定ができます。

サービスが失敗したときの回復操作を設定する

◎質問者からの返答

HALSPECIALさんには脱帽です。今回もありがとうございます。本当に助かります。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ