5Sep
Skupni sistem in / ali okoljevarstveni dogodki, kot je nadaljevanje iz stanja pripravljenosti ali izguba omrežne povezave, lahko povzročijo težave pri nekaterih aplikacijah, za katere se pričakuje, da bodo vedno vključene in povezane. Torej, če imate določeno aplikacijo, ki se nekajkrat pogosto zruši ali gre v način "ne odziva", in ponovnega zagona je edina rešitev za to, imamo preprosto popravljanje v obliki prilagodljivega šaržnega skripta, ki preprosto ubije aplikacijo inznova zaženite.
Poleg očitne situacije zgoraj, lahko ta skript uporabite za različne uporabne naloge, kot so:
- Preprosto ponovno zaženite aplikacijo tako, da dvokliknete ali uporabite vročo tipko.
- Ponovni zagon programa samo, če je obešen ali se ne odziva.
- Zaženite kot načrtovana naloga, da zagotovite, da se aplikacija vedno izvaja.
- Kadarkoli želite avtomatizirati pogojno ponovno zaganjanje aplikacije.
Prilagajanje skripta mora biti precej samoumevno zaradi komentarjev, zato ga ustrezno konfigurirajte in vsi ste nastavljeni.
Skript
@ECHO OFF ECHO Ponovni zagon ECHO Prispeval: Jason Faulkner ECHO SysadminGeek.com ECHO.ECHO.SETLOCAL EnableExtensions REM Vnesite podatke o aplikaciji. SET AppName = Ime aplikacije SET ExeFile = FileToLaunch.exe SET ExePath = C: PathToApplication REM Izberite pogoje za uničenje aplikacije. REM Vrednost 1 = Da, 0 = Ne SET KillIfRunning = 1 SET KillIfNotResponding = 1 SET KillIfUnknownStatus = 1 REM Navedite, kdaj zaženite aplikacijo: REM 1 = Zaženi samo, če je bil postopek predhodno ubit. REM 0 = aplikacijo zaženite ne glede na to. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Uspešnost = 0 ECHO Uničenje obstoječega% AppName% primerka. .. IF{ % KillIfRunning%} =={ 1} CALL: CheckKillStatus "% ExeFile%""RUNNING" IF{ % KillIfNotResponding%} =={ 1} CALL: CheckKillStatus "% ExeFile%" "NE RESPONDING" IF{ % KillIfUnknownStatus%} =={ 1} CALL: CheckKillStatus "% ExeFile%" "UNKNOWN" ECHO.IF{ % StartOnlyIfKilled%} =={ 1}( IF{ % Success%} =={ 0} GOTO Konec) ECHO Znova zažene% AppName%. .. START "% ExeFile%" "% ExePath %% ExeFile%" ECHO.IF EXIST% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Ubijanje s statusom:% ~ 2 TASKKILL / FI "STATUS eq% ~ 2" / IM "% ~ 1" / F & gt;% KillStatus% SET / P KillResult = & lt;% Killeratus% FOR / F "tokens = 1, * delims =:" %% A IN( "% KillResult%") DO( ECHO %% A: %% B IF / I{ %% A} =={ SUCCESS}SET / A Success =% Uspešnost% + 1): KončajZaključek
Medtem ko lahko najdete programe, ki izvajajo v bistvu isto funkcijo, s preprostim skriptom, kot je ta, se izognete temu, da se v ozadju izvaja "še en program".