Restart on Crash, uno strumento per riavviare automaticamente applicazioni, programmi e servizi che smettono di funzionare

Triangolo giallo sull'icona Rete di Windows: cosa significa e come eliminarlo

Uno dei compiti più importanti di un amministratore di sistema è quello di assicurare il funzionamento costante di determinati applicativi sulle macchine che lavorano in modalità always-on: web server, servizi FTP, database o anche programmi e applicazioni desktop che svolgono funzioni di utilità varia. La maggior parte di questi servizi prevede un sistema di auto-monitoring che, in caso di problemi, può essere configurato per riavviare automaticamente i propri servizi e/o avvisare altri applicativi di monitoring che possono farlo: esistono però molte applicazioni che non hanno questa funzionalità e che quindi “muoiono” senza alcuna possibilità ripartire e, quel che è peggio, senza dare alcun tipo di avviso.

Nella maggior parte dei casi si tratta di piccole applicazioni sviluppate internamente e/o pensate per un utilizzo diverso da quello che se ne fa. Questo aggrava ulteriormente le cose: nella maggior parte dei casi, un software pensato per essere utilizzato occasionalmente non è dotato delle caratteristiche necessarie per poter funzionare in modalità always-on e sarà quindi maggiormente soggetto a crash periodici, magari per via di una gestione non ottimale della memoria o dei thread. Un vero e proprio incubo per qualsiasi amministratore di sistema, che rischia di dover svolgere una onerosa, frequente e altamente insicura attività di monitor e riavvio manuale.

Per venire incontro a questo tipo di problemi esistono diverse applicazioni che consentono di chiudere e riavviare automaticamente un programma o un servizio che non risponde e/o va in crash: ovviamente, uno strumento del genere deve garantire una affidabilità elevata, altrimenti rischia di cadere vittima dello stesso problema che ha il compito di risolvere per gli altri applicativi. In questo articolo segnaliamo il software che, a distanza di anni, ci sembra funzionare meglio da questo punto di vista: Restart on Crash, una utility freeware sviluppata dallo sviluppatore indipendente Janis Elsts nell’ormai lontano 2009 e ancora compatibile con tutte le versioni di Windows e Windows server, scaricabile gratuitamente dalla sua pagina ufficiale.

Il programma, come la maggior parte degli strumenti pensati per amministratori di sistema, non ha un installer vero e proprio: è sufficiente scompattare il file zip contenente l’eseguibile in una cartella dedicata, come ad esempio  , e lanciarlo: alla prima esecuzione verrà creato, all’interno della stessa cartella, un file .ini contenente le impostazioni che andremo a configurare.

L’interfaccia del programma è piuttosto semplice: quattro icone che descrivono le principali azioni che è possibile effettuare (Add, Delete, Settings, Show Log) e una grande casella bianca, inizialmente vuota, che conterrà l’elenco degli eseguibili da controllare.

Restart-on-Crash-main-screen

I primi due pulsanti, inutile dirlo possono essere utilizzati per aggiungere e/o eliminare i suddetti eseguibili. Per ciascuno di essi sarà possibile definire una serie di impostazioni, tra cui:

  • L’applicazione da controllare (Monitor this application),  selezionabile tramite percorso file oppure direttamente dall’elenco dei processi attivi di Windows.
  • Le modalità di controllo (Assume it has crashed or hanged when): è possibile controllare se l’applicazione risponde al sistema e/o se è in esecuzione oppure no: è anche possibile impostare un double-check, ovvero un controllo aggiuntivo dopo un certo numero di secondi: questa funzionalità è particolarmente utile per quelle applicazioni che hanno una gestione non ottimale del thread principale, le quali possono produrre dei forti rallentamenti temporanei ed essere quindi percepite come “bloccate”.
  • La possilità di effettuare un kill dell’applicazione quando questa risulta bloccata, al netto di un eventuale double-check fallito.
  • Il comando da eseguire dopo l’eventuale kill (Execute a command): nella maggior parte dei casi qui occorrerà specificare il path di esecuzione dell’eseguibile, così da assicurarsi che l’applicazione torni in esecuzione. Tuttavia, è anche possibile impostare l’esecuzione di un comando diverso, come ad esempio un file batch che, oltre a far ripartire l’applicazione, provveda a inviare notifiche e/o e-mail agli amministratori di sistema per avvertirli dell’avvenuto blocco o crash.

Restart-on-Crash-add-screen

Il pulsante Settings consente di accedere alle impostazioni generali: l’esecuzione automatica all’avvio di windows, l’avvio ridotto a icona, la scrittura su disco del log delle operazioni effettuate e l’impostazione di un grace period. Quest’ultima funzionalità è particolarmente importante, in quanto definisce  il tempo (in secondi) che il software attende dopo aver lanciato una applicazione andata in crash prima di controllare nuovamente che sia effettivamente in esecuzione: impostare un grace period commisurato al tempo di avvio delle applicazioni che vogliamo controllare può evitare che il programma lanci erroneamente per la seconda volta un programma particolarmente lento a partire. Sfortunatamente, trattandosi di una impostazione globale, non è possibile impostare un grace period specifico per ciascuna applicazione.

Restart-on-Crash-settings-screen

L’ultimo pulsante, Show Log, consente ovviamente di visualizzare su schermo le ultime attività effettuate dall’applicazione. Queste resteranno disponibili fino a quando l’applicazione non verrà chiusa a meno che non si decida di scriverle su disco su un apposito log file, impostabile tramite il pannello Settings (vedi sopra).

Alternative

Al di là della sua indubbia affidabilità, la mancanza di aggiornamenti dal 2009 può far ragionevolmente storcere il naso a chiunque preferisca utilizzare strumenti al passo con i tempi. Purtroppo, la maggior parte di questi strumenti è stata realizzata diversi anni fa e versa in una situazione analoga, se non peggiore, a quella di Restart on Crash.

  • ProcessAlive è una delle poche eccezioni: l’ultimo aggiornamento è di giugno 2016, ovvero circa due mesi prima di questo articolo. Si tratta di una applicazione ancora in fase di sviluppo ma che fornisce già funzionalità analoghe a quelle di Restart on Crash. E’ sviluppata da SingularLabs ed è possibile scaricarla collegandosi a questa pagina.
  • Application Monitor, dell’italianissima JokerSoft, è un’ottima applicazione che presenta caratteristiche analoghe alle precedenti: purtroppo ha qualche problema a riconoscere se i processi sono in esecuzione o meno a determinate condizioni; inoltre non può essere ridotta nel systray. E’ possibile scaricarla collegandosi a questa pagina.
  • RestartMe è un’applicazione pensata appositamente per riavviare processi arrestati: a differenza delle precedenti non controlla se il processo risponde o meno, limitandosi a verificare se è in esecuzione oppure no. Questo le consente di essere estremamente efficiente e veloce. Inoltre, dà la possibilità di proteggere la finestra di configurazione con una password, cosa che la rende perfetta se il vostro scopo è quello di impedire a un utente di chiudere una applicazione (Antivirus, software di controllo per minori, et. al.)  E’ possibile scaricarla collegandosi a questa pagina.
  • Control Running Programs (CRP) è una utility pensata per impedire che determinate applicazioni vengano chiuse accidentalmente, provvedendo a lanciarle nuovamente se necessario: in questo senso, svolge esattamente la funzione che ci interessa. A differenza delle altre, può essere configurata per impostare un numero massimo di istanze possibili di ciascuna applicazione, funzionalità che può essere molto utile in determinati casi ma che la rende anche leggermente più difficile da utilizzare. Il sito ufficiale non è più attivo da qualche anno, ma è comunque possibile scaricare l’ultima versione rilasciata collegandosi a questa pagina. Inutile dire che sarà molto difficile vedere una nuova versione…
  • Keep Running, una utility command-line che svolge grossomodo le stesse funzioni di Restart on Crash, particolarmente indicata se possiamo (o preferiamo) fare a meno dell’interfaccia utente. La configurazione, ovviamente, avviene attraverso un file .ini che dovrà essere configurato manualmente: fortunatamente, anche se il sito ufficiale non è più disponibile, l’archivio contenente l’applicazione, disponibile a questa pagina, contiene un Readme con tutta la documentazione del caso.
  • ServiceEx è una altra utility command-line che funziona in modo diverso da tutte le precedenti: consente infatti di installare un qualsiasi programma come se fosse un servizio di sistema, provvedendo al suo riavvio automatico quando esso viene chiuso. Si tratta di un approccio incredibilmente utile, soprattutto per i programmi privi di interfaccia utente. Purtroppo anche in questo caso il sito ufficiale non è più disponibile, motivo per cui abbiamo messo a disposizione un archivio contenente l’eseguibile e un file .ini di exempio che può essere utilizzato per modificare le impostazioni predefinite.

 

Per il momento è tutto: felice restart!

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.