RestartOnCrash
Riavvia le applicazioni che crashano!
RestartOnCrash è una semplice applicazione .NET Core
, open source e scritta in C#
che mira a risolvere il problema di un’applicazione per Windows che cessa di funzionare per problemi che non puoi gestire dall’interno. Semplicemente riavvia l’applicazione crashata.
In passato mi è capitato di aver dovuto utilizzare un software di terze parti con un bug relativo alla gestione della memoria, un memory leak: dopo due giorni di esecuzione la memoria riservata dall’applicazione arrivava al 100% e Windows uccideva il processo per preservare le risorse. Nel mio contesto avevo la necessità di mantenere l’applicazione sempre attiva, nonostante tutto.
Non avendo accesso al codice sorgente in questione, ho dovuto arrangiarmi con una soluzione esterna, ed ho sviluppato RestartOnCrash.
RestartOnCrash sorveglia un particolare processo e lo riavvia se questo non è più in esecuzione.
Ogni volta che esegue un’operazione, scrive un evento nell’EventViewer di Windows con i log del monitoraggio, per tracciare con precisione ogni crash e riavvio.
Nel mio caso - per gestire eventuali riavvii della macchina stessa dovuti ad aggiornamenti automatici, blackout, intervento umano - ho posto sia RestartOnCrash che l’applicazione da monitorare allo startup di Windows, così da non pensarci più.
Configurare RestartOnCrash
Tutto quello che serve è configurare il file configuration.json
{
"PathToApplicationToMonitor": "C:\Program Files (x86)\AnApplicationThatMayCrash.exe",
"CheckInterval": "00:00:10",
"StartApplicationOnlyAfterFirstExecution": true
}
PathToApplicationToMonitor
: indica il percorso dell’applicazione da monitorare. Al momento gestisce una sola applicazioneCheckInterval
: è un TimeSpan serializzato. Rappresenta la frequenza con cui RestartOnCrash controlla lo stato dell’applicazioneStartApplicationOnlyAfterFirstExecution
: sefalse
, quando RestartOnCrash si avvia per la prima volta, avvia anche l’applicazione monitorata; se true attende che l’applicazione monitorata sia in esecuzione per agganciarsi al suo processo
Contribuire
Il mondo dell’open source è meraviglioso proprio perché ognuno può dare il proprio contributo ed aiutare chissà chi nel mondo!
Il codice di RestartOnCrash è interamente open source su GitHub ed è aperta alla collaborazione da parte di tutti. Poco tempo fa ho ricevuto una pull request molto gradita dove veniva impostata una notifica di sistema in seguito al riavvio delle applicazioni gestite.