예제 #1
0
        protected override void OnStop()
        {
            //if (!System.Environment.UserInteractive)
            //EventLog.WriteEntry("IAM.Collector", "Serviço finalizado", EventLogEntryType.Information);

            //Finaliza todos os processos filhos
            List <Process> procs = ProcessUtilities.GetChieldProcess();

            for (Int32 i = 0; i < procs.Count; i++)
            {
                //Resgata a listagem de filhos do processo que será finalizado
                List <Process> procChields = ProcessUtilities.GetChieldProcess(procs[i].Id);

                //Finaliza o processo
                try
                {
                    procs[i].Kill();
                }
                catch { }

                //Finaliza os filhos do processo
                try
                {
                    for (Int32 c = 0; c < procChields.Count; c++)
                    {
                        try
                        {
                            procChields[c].Kill();
                        }
                        catch { }
                    }
                }
                catch { }
            }

            //Killall("IAMProxy");
            //Killall("IAMPluginStarter");
        }