Windows Server 2003: kill process e wait
Mi appunto questo tips che ho dovuto utilizzare su un server RDS in ambiente 2003 R2 Sp2, dove agli utenti RDP veniva avviato non il desktop, ma una sola applicazione.
Lo scenario è quello di una linea di produzione industriale in cui i Thin Client devono eseguire un’applicazione di monitoraggio che a sua volta apre minimizzato un secondo eseguibile.
La problematica è quella di arrestare anche questo secondo eseguibile prima di disconnettersi, possibilmente in modo corretto, ma nel caso dopo 5 secondi il processo non si arresti eseguile il kill forzato del processo.
E’ possibile gestire questo tipo di necessità impostando l’utente ad avviare uno script (che nel mio caso ho impostato direttamente sulla connessone RDP configurata sul Thin Clinet):
Per quanto riguarda lo script è possibile strutturarlo come segue:
REM Avvio Applicazione principale
START /MAX /WAIT ApplicazionePrincipale.exeREM Kill dell’eventuale processo dell’Applicazione Secondaria
taskkill /im ApplicazioneSecondaria.exeREM Wait di 5 secondi
timeout /t 5 /nobreakREM Kill forzato dell’eventuale processo dell’Applicazione Secondaria se ancora attivo
taskkill /im ApplicazioneSecondaria.exeREM Logoff
LOGOFF
Volendo è possibile anche gestire il controllo dell’esistenza del processo tramite il comando Tasklist utilizzato in combinazione al comando Taskkill.
Per gestire l’attesa in Windows Server 2003 è disponibile nativamente il comando timeout.